public void ShowSpell(bool show) { SpellRoot.SetActive(show); isSpellActive = show; m_CharacterStatsController = owner.GetComponent <CharacterStatsController>(); DebugUtility.HandleErrorIfNullGetComponent <CharacterStatsController, SpellController>(m_CharacterStatsController, this, gameObject); }
void OnHit(Collider collider) { // point damage InteractionDamageSelf damageable = collider.GetComponent <InteractionDamageSelf>(); if (damageable) { damageable.iteractiableBase.Interact(gameObject); CharacterStatsController stats = collider.GetComponent <CharacterStatsController>(); print("HIT!"); if (stats != null) { print("Slowed!"); stats.moveSpeed.AddTemporaryModifier(slowAmount, slowDuration); } } // // impact vfx // if (impactVFX) // { // GameObject impactVFXInstance = Instantiate(impactVFX, point + (normal * impactVFXSpawnOffset), Quaternion.LookRotation(normal)); // if (impactVFXLifetime > 0) // { // Destroy(impactVFXInstance.gameObject, impactVFXLifetime); // } // } // // impact sfx // if (impactSFXClip) // { // AudioUtility.CreateSFX(impactSFXClip, point, AudioUtility.AudioGroups.Impact, 1f, 3f); // } Destroy(this.gameObject); }
void Start() { CharacterStatsController stats = GetComponent <CharacterStatsController>(); DebugUtility.HandleErrorIfNullGetComponent <CharacterStatsController, PlayerManager>(stats, this, gameObject); stats.onHealthChanged += HookDamage; }
private void Start() { m_CharacterStatsController = character.GetComponent <CharacterStatsController>(); DebugUtility.HandleErrorIfNullGetComponent <CharacterStatsController, HealthBarController>(m_CharacterStatsController, this, gameObject); SetHealthBarMaxValue(m_CharacterStatsController.maxHealth.GetValue()); m_CharacterStatsController.onHealthChanged += HandleHealthChange; }
void OnShoot() { CharacterStatsController statsController = m_ProjectileBase.owner.GetComponent <CharacterStatsController>(); DebugUtility.HandleErrorIfNullGetComponent <CharacterStatsController, SpeedBoostSpell>(statsController, this, gameObject); statsController.moveSpeed.AddTemporaryModifier(speed, duration); }
private void OnEnable() { iteractiableBase = GetComponent <InteractableBase>(); DebugUtility.HandleErrorIfNullGetComponent <InteractableBase, InteractionDamageSelf>(iteractiableBase, this, gameObject); m_SelfStatsController = GetComponent <CharacterStatsController>(); DebugUtility.HandleErrorIfNullGetComponent <CharacterStatsController, InteractionDamageSelf>(m_SelfStatsController, this, gameObject); iteractiableBase.onInteract += OnInteract; }
void OnShoot() { CharacterStatsController statsController = m_ProjectileBase.owner.GetComponent <CharacterStatsController>(); DebugUtility.HandleErrorIfNullGetComponent <CharacterStatsController, PanicSpell>(statsController, this, gameObject); statsController.cdr.AddModifier(cdr); statsController.moveSpeed.AddModifier(speed); statsController.ap.AddModifier(ap); statsController.AddStatus(Status.LowPrecision); }
private void OnHit(Collider collider) { // point damage InteractionDamageSelf damageable = collider.GetComponent <InteractionDamageSelf>(); if (damageable) { damageable.iteractiableBase.Interact(gameObject); CharacterStatsController stats = collider.GetComponent <CharacterStatsController>(); if (stats != null) { stats.moveSpeed.AddTemporaryModifier(slowAmount, slowDuration); } } print(string.Format("hit : {0}", collider.name)); Destroy(this.gameObject); }
void Start() { m_NavAgent = GetComponent <NavMeshAgent>(); DebugUtility.HandleErrorIfNullGetComponent <NavMeshAgent, EnemyCharacterController>(m_NavAgent, this, gameObject); m_PlayerTransform = PlayerManager.instance.player.transform; m_PlayerInteractableBase = PlayerManager.instance.player.GetComponent <InteractableBase>(); m_SelfInteractableBase = GetComponent <InteractableBase>(); m_NavAgent.stoppingDistance = 0; m_CharacterStatsController = GetComponent <CharacterStatsController>(); m_cdr = m_CharacterStatsController.cdr.GetValue(); m_moveSpeed = m_CharacterStatsController.moveSpeed.GetValue(); m_NavAgent.speed = m_moveSpeed; m_strategy.selfGameObject = gameObject; m_strategy.playerGameObject = PlayerManager.instance.player; m_strategy.Init(); ChaseOnBeingAttacked(); }
void OnInteract(GameObject caller) { ProjectileBase projectileBase = caller.GetComponent <ProjectileBase>(); float damage; if (projectileBase != null) { // if interact from spell CharacterStatsController characterStatsController = projectileBase.owner.GetComponent <CharacterStatsController>(); float spellDamageModifier = projectileBase.spellDamageModifier; damage = selfDamageModifier * spellDamageModifier * characterStatsController.ap.GetValue(); } else { // if interact directly CharacterStatsController characterStatsController = caller.GetComponent <CharacterStatsController>(); damage = selfDamageModifier * characterStatsController.ap.GetValue(); } m_SelfStatsController.TakeDamage(damage); // print(string.Format("{0} does {1} damage to {2}", caller.name, damage, gameObject.name)); }
public override void Init() { m_SpellManager = selfGameObject.GetComponent <EnemySpellsManager>(); m_SelfController = selfGameObject.GetComponent <EnemyCharacterController>(); m_Params = selfGameObject.GetComponent <StrategyParams>(); m_SelfStats = selfGameObject.GetComponent <CharacterStatsController>(); m_PlayerController = playerGameObject.GetComponent <PlayerCharacterController>(); m_PlayerStats = playerGameObject.GetComponent <PlayerStatsController>(); m_SelfStats.onHealthChanged += UpdateDamageTime; m_DelayBetweenAttacks = m_SelfController.delayBetweenAttacks; m_cdr = m_SelfStats.cdr.GetValue(); m_GFX = selfGameObject.transform.Find("GFX").gameObject; m_MobileHealthBar = m_GFX.transform.Find("MobileHealthBar").gameObject; m_EnemyGraphic = m_GFX.transform.Find("EnemyGraphic").gameObject; m_TheHangingGraphic = m_EnemyGraphic.transform.Find("Rope").gameObject; m_Level = LevelsManager.instance.level; m_Animator = selfGameObject.GetComponent <EnemyAnimator>(); m_PlayerInteractable = playerGameObject.GetComponent <InteractableBase>(); PlayerManager.instance.playerDamageTaken += (dmg) => { m_DamageBalanced += dmg; }; EnemyManager.instance.enemyDamageTaken += (dmg) => { m_DamageBalanced -= dmg; }; }
void Awake() { _physicsController = new CharacterPhysicsController(this); _statsController = new CharacterStatsController(this); _movementController = new CharacterMovementController(this); }