protected override void Init() { base.Init(); base.SetViewPosition(Lib.View.ViewPosition.TopLeft); Enemy = FindGameObject("Enemy"); Pet = FindGameObject("Pet"); Player = FindGameObject("Player"); Teammate = FindGameObject("Teammate"); TeammateItem = FindGameObject("TeammateItem"); TeammateList = FindGameObject("TeammateList"); enemyBlood = Enemy.AddComponent <EnemyBlood>(); Pet.SetActive(false); Teammate.SetActive(false); Enemy.SetActive(false); MajorPlayer player = PlayerManager.GetInstance().MajorPlayer; base.CombatLabel.text = player.combat.ToString(); OnUpdatePlayerMoney(null); OnChangeNickname(null); OnChangeHead(null); OnPlayerLevelUp(null); OnChangeCombat(null); }
/// <summary> /// Cause damage to entity health with additional logic. /// </summary> /// <param name="source">Source entity behaviour.</param> /// <param name="amount">Amount to damage health.</param> /// <param name="showBlood">Show blood splash.</param> /// <param name="bloodPosition">Blood splash position.</param> public void DamageHealthFromSource(DaggerfallEntityBehaviour sourceEntityBehaviour, int amount, bool showBlood, Vector3 bloodPosition) { // Remove health amount Entity.DecreaseHealth(amount); // Post-attack logic on source HandleAttackFromSource(sourceEntityBehaviour); // Show blood if (showBlood) { EnemyBlood blood = transform.GetComponent <EnemyBlood>(); if (blood) { blood.ShowBloodSplash(0, bloodPosition); } } }
void DecreaseHealth(DaggerfallEntityBehaviour host, int amt) { host.Entity.DecreaseHealth(amt); if (host.Entity == GameManager.Instance.PlayerEntity) { return; } EnemyEntity enemy = host.Entity as EnemyEntity; EnemyBlood blood = host.transform.GetComponent <EnemyBlood>(); CharacterController targetController = host.transform.GetComponent <CharacterController>(); Vector3 bloodPos = host.transform.position + targetController.center; bloodPos.y += targetController.height / 8; if (blood) { blood.ShowBloodSplash(enemy.MobileEnemy.BloodIndex, bloodPos); } return; }