| 
本帖最後由 y0800243 於 2014-4-4 17:55 編輯
x
馬上加入Android 台灣中文網,立即免費下載應用遊戲。您需要 登錄 才可以下載或查看,沒有帳號?註冊  
 Public Sub ApplyEffectToPlayer(ByVal magnitude As Single, ByVal Optional forceHeal As Boolean = False)
 
 
 
 
 If (PlayerData.mCurrentHP > 0!) Then
 Dim flag As Boolean = True
 SkillInstance.AlterPlayerHPEvent(magnitude, forceHeal)
 If (magnitude >= 0!) Then
 If (magnitude < RestoreGameplay.minRecoverHP) Then
 RestoreGameplay.minRecoverHP = magnitude
 End If
 If (magnitude > RestoreGameplay.maxRecoverHP) Then
 RestoreGameplay.maxRecoverHP = magnitude
 End If
 RestoreGameplay.totalRecoverHP = (RestoreGameplay.totalRecoverHP + magnitude)
 If ((PlayerData.mCurrentHP < PlayerData.mMaxHP) AndAlso (magnitude > 0!)) Then
 Me.recoverDisplayTime += 1
 Me.HpERcoverEffectPlay
 AudioController.sfx.Play(Sound1.instance.hpRecover)
 End If
 ElseIf (magnitude < 0!) Then
 If (((Labyrinth.protectedData.currentBattleZoneIndex = Labyrinth.protectedData.totalBattleZone) AndAlso (PlayerData.mCurrentHP > (PlayerData.mMaxHP * 0.5!))) AndAlso ((PlayerData.mCurrentHP + magnitude) < (PlayerData.mMaxHP * 0.1!))) Then
 LabyrinthCamera.parent.animation.Play
 End If
 Dim num As Integer = CInt(-magnitude)
 RestoreGameplay.totalDamageTaken = (RestoreGameplay.totalDamageTaken + num)
 If (num > RestoreGameplay.maxDamageTaken) Then
 RestoreGameplay.maxDamageTaken = num
 End If
 If (num < RestoreGameplay.minDamageTaken) Then
 RestoreGameplay.minDamageTaken = num
 End If
 If (num > RestoreGameplay.maxDamageTakenPerWave(RestoreGameplay.protectedData.currentWaveIndex1)) Then
 RestoreGameplay.maxDamageTakenPerWave(RestoreGameplay.protectedData.currentWaveIndex1) = num
 End If
 AudioController.sfx.Play(Sound1.instance.skill_retribute)
 End If
 PlayerData.mCurrentHP = (PlayerData.mCurrentHP + magnitude)
 If (PlayerData.mCurrentHP > PlayerData.mMaxHP) Then
 PlayerData.mCurrentHP = PlayerData.mMaxHP
 End If
 If (PlayerData.mCurrentHP <= 0!) Then
 If flag Then
 PlayerData.mCurrentHP = 1!
 Else
 PlayerData.mCurrentHP = 0!
 CoroutineControl.instance.StartCoroutine(Me.GameOver)
 MyBase.enabled = False
 End If
 ElseIf (PlayerData.mCurrentHP <= 1!) Then
 PlayerData.mCurrentHP = 1!
 End If
 If (PlayerData.mCurrentHP < RestoreGameplay.minHP) Then
 RestoreGameplay.minHP = PlayerData.mCurrentHP
 End If
 If (PlayerData.mCurrentHP < RestoreGameplay.minPlayerHPPerWave(RestoreGameplay.protectedData.currentWaveIndex1)) Then
 RestoreGameplay.minPlayerHPPerWave(RestoreGameplay.protectedData.currentWaveIndex1) = PlayerData.mCurrentHP
 End If
 If (PlayerData.mCurrentHP > 0!) Then
 Labyrinth.newHPBar.ChangeTo(If(((PlayerData.mCurrentHP / PlayerData.mMaxHP) >= 0.01!), (PlayerData.mCurrentHP / PlayerData.mMaxHP), 0.01!), 0.4!)
 Else
 Labyrinth.newHPBar.ChangeTo(0!, 0.4!)
 End If
 If (Not Labyrinth.playerHP_JText Is Nothing) Then
 Labyrinth.playerHP_JText.text = (CInt(PlayerData.mCurrentHP) & "/" & CInt(PlayerData.mMaxHP))
 End If
 If (PlayerData.mCurrentHP > (PlayerData.mMaxHP * 0.2!)) Then
 Labyrinth.playerHP_JText_Ani.endBehaviour
 Labyrinth.playerHP_JText.myR.material.color = New Color(1!, 1!, 1!, 1!)
 Else
 Dim colors As Color() = New Color() { New Color(1!, 1!, 1!, 1!), New Color(1!, 0.3!, 0.3!, 1!), New Color(1!, 1!, 1!, 1!) }
 Labyrinth.playerHP_JText_Ani.init(colors, 0.5!, CurveMode.linear, -1!, AniEndAction.disableScript, Nothing, 0)
 End If
 Labyrinth.CalculateDisplayKiller
 End If
 End Sub
 |