private BaseAttack CreateAttackType(Weapon.AttackType attackType) { foreach (MonoBehaviour component in GetComponents <MonoBehaviour>()) { if (component is BaseAttack) { component.enabled = false; } } BaseAttack attack; if (attackType == Weapon.AttackType.Melee) { attack = this.GetOrAddComponent <MeleeAttack>(); } else if (attackType == Weapon.AttackType.Swing) { attack = this.GetOrAddComponent <SwingAttack>(); } else if (attackType == Weapon.AttackType.Jab) { attack = this.GetOrAddComponent <JabAttack>(); } else if (attackType == Weapon.AttackType.Shoot) { attack = this.GetOrAddComponent <ShootAttack>(); } else if (attackType == Weapon.AttackType.Knife) { attack = this.GetOrAddComponent <KnifeAttack>(); } else if (attackType == Weapon.AttackType.Pistol) { attack = this.GetOrAddComponent <PistolAttack>(); } else if (attackType == Weapon.AttackType.Slash) { attack = this.GetOrAddComponent <SlashAttack>(); } else { attack = this.GetOrAddComponent <MeleeAttack>(); } attack.animator = _animator; attack.attack = this; attack.attackArea = _attackBox; return(attack); }
private void AddBlood(Collider2D collider) { Attack attack = collider.GetComponentInParent <Attack>(); if (attack) { if (attack.weapon) { Weapon.AttackType attackType = attack.weapon.attackType; if (attackType == Weapon.AttackType.Swing) { if (attack.attackState == Attack.State.Heavy) { InstantiateBlood(bloodHeavySwing); } else { InstantiateBlood(bloodLightSwing); } } else if (attackType == Weapon.AttackType.Shoot) { InstantiateBlood(bloodShoot); } else if (attackType == Weapon.AttackType.Pistol) { InstantiateBlood(bloodShoot); } else if (attackType == Weapon.AttackType.Melee) { if (attack.attackState == Attack.State.Heavy) { InstantiateBlood(bloodHeavyMelee); } else { InstantiateBlood(bloodLightMelee); } } else if (attackType == Weapon.AttackType.Jab) { InstantiateBlood(bloodJab); } return; } } InstantiateBlood(bloodSplatter); }
// Use this for initialization void Start() { _attackType = GameObject.Find("Player").GetComponent <Attack>().weapon.attackType; foreach (Transform child in transform) { if (_attackType == Weapon.AttackType.Melee && child.GetComponent <Perk>().type == PerkManager.activeAxePerk.type) { child.gameObject.SetActive(true); } else { child.gameObject.SetActive(false); } } }