public override void useSkill(int skillIndex) { if (activeSkills.Count < skillIndex) { return; } if (actionCdRemain[skillIndex + 4] > 0) { return; } actionCdRemain[skillIndex + 4] = actionCds[skillIndex + 4]; ActiveModifier modifier = (ActiveModifier)activeSkills[skillIndex]; if (modifier.type == 251) { Projectile.ShootProjectile(this, status.facingDirection, CharacterSkillType.Active1, 0); } if (modifier.type == 258) { Projectile.ShootProjectile(this, status.facingDirection, CharacterSkillType.Active2, 0); applyTemporaryEffect(555); } }
public override void hit(Character other, CharacterSkillType skillType, int subType = 0) { if (other == null) { return; } if (other.tag == "TempEnemy") { //TempEnemy temp = (TempEnemy) other; Character temp = (Character)other; switch (skillType) { case CharacterSkillType.Attack: temp.status.hp -= attackModifier.damage[subType]; if (attackModifier.negativeEffectCount > 0) { for (int a = 0; a != attackModifier.negativeEffectCount; ++a) { other.applyTemporaryEffect(attackModifier.negativeEffects[a]); } } break; case CharacterSkillType.ChargedAttack: temp.status.hp -= chargedAttackModifier.damage[subType]; break; case CharacterSkillType.Dodge: if (dodgeModifier.negativeEffectCount > 0) { for (int a = 0; a != dodgeModifier.negativeEffectCount; ++a) { other.applyTemporaryEffect(dodgeModifier.negativeEffects[a]); } } break; case CharacterSkillType.Active1: { ActiveModifier mod = (ActiveModifier)activeSkills[0]; temp.status.hp -= mod.damage[0]; if (mod.negativeEffectCount > 0) { for (int a = 0; a != mod.negativeEffectCount; ++a) { other.applyTemporaryEffect(mod.negativeEffects[a]); } } break; } case CharacterSkillType.Active2: { ActiveModifier mod = (ActiveModifier)activeSkills[1]; temp.status.hp -= mod.damage[0]; if (mod.negativeEffectCount > 0) { for (int a = 0; a != mod.negativeEffectCount; ++a) { other.applyTemporaryEffect(mod.negativeEffects[a]); } } break; } } } }