public void StopAllAttacks() { StopAttack(CharacterAttackType.Melee); StopAttack(CharacterAttackType.Dodge); StopAttack(CharacterAttackType.Distance); _currentAttackType = CharacterAttackType.None; }
void OnAttackHit(CharController charController, CharacterAttackType characterAttackType, int damage) { if (characterAttackType == CharacterAttackType.Tackle) { _tackleSumDamage += damage; } }
void OnAttack(CharController charController, CharacterAttackType characterAttackType) { if (characterAttackType == CharacterAttackType.Projectile) { _projectileThrowCount++; } }
public static CharacterEditorAttackData CreateData(CharacterAttackType attackType) { switch (attackType) { case CharacterAttackType.BOMB: return(new CharacterEditorBombAttackData()); case CharacterAttackType.NORMAL: return(new CharacterEditorNormalAttackData()); } return(null); }
public static AttackBaseData CreateInstance(CharacterAttackType eType) { switch (eType) { case CharacterAttackType.BOMB: return(AttackBaseData.CreateInstance <AttackBombData>()); case CharacterAttackType.NORMAL: return(AttackBaseData.CreateInstance <AttackNormalData>()); } return(null); }
public void ChangeFrameData(int index, CharacterAttackType attType) { CharacterEditorAttackData dt = this.m_attackDatas[index]; int iFrame = dt.m_iFrame; if (attType != dt.m_attackType) { dt = CharacterEditorAttackData.CreateData(attType); dt.m_iFrame = iFrame; dt.m_attackType = attType; this.m_attackDatas[index] = dt; } }
public static AttackType ToAttackType(CharacterAttackType attackType) { switch (attackType) { case CharacterAttackType.Tackle: return(AttackType.Tackle); case CharacterAttackType.Projectile: return(AttackType.Projectile); } throw new System.NotImplementedException(); }
public void SetAttackTarget(CharacterAttackType type, Transform target) { switch (type) { case CharacterAttackType.Melee: _meleeAttack.FovSightLogic.Target = target; break; case CharacterAttackType.Dodge: case CharacterAttackType.Distance: break; case CharacterAttackType.None: break; } _currentAttackType = type; }
public void StopAttack(CharacterAttackType type) { switch (type) { case CharacterAttackType.Melee: _meleeAttack.FovSightLogic.Target = null; _animationLogic.TogglePunchAnim(false); break; case CharacterAttackType.Dodge: case CharacterAttackType.Distance: break; case CharacterAttackType.None: break; } IsAttacking = false; }
public void LoadStats(BaseCharacter stats) { baseDamage = stats.BaseDamage; attackSpeed = stats.AttackSpeed; maxHealth = stats.Health; maxMana = stats.Mana; armor = stats.Armor; magicArmor = stats.MagicArmor; attackRange = stats.AttackRange; movementSpeed = stats.MovementSpeed; healthRegeneration = stats.HealthRegeneration; manaRegeneration = stats.ManaRegeneration; goldGivenUponDeath = stats.GoldGivenUponDeath; attackType = stats.AttackType; attackRangeType = stats.RangeType; currentHealth = maxHealth; currentMana = maxMana; }
public override void FromXml(XmlElement xml) { XmlRead.Attr(xml, "animation_name", ref animation_name); XmlRead.Attr(xml, "total_frame", ref total_frame); XmlNodeList xmlList = xml.GetElementsByTagName("attack"); int frame = -1; foreach (XmlNode node in xmlList) { XmlElement ele = node as XmlElement; CharacterAttackType eType = CharacterAttackType.NONE; XmlRead.AttrEnum <CharacterAttackType>(ele, "attack_type", ref eType); XmlRead.Attr(ele, "frame_index", ref frame); AttackBaseData pData = AttackBaseData.CreateInstance(eType); pData.FromXml(ele); AttackData[frame] = pData; Network.attackbasedata = pData; } }
public void OnDamageTaken(HeroCharacterStatManagement recievingCharacter, BaseCharacterStatManagement attackingCharacter, CharacterAttackType type, float dmg) { base.OnDamageTaken(recievingCharacter, attackingCharacter, type, dmg); }
public void OnDamageTaken(BaseCharacterStatManagement recievingCharacter, BaseCharacterStatManagement attackingCharacter, CharacterAttackType type, float dmg) { // Damage after armor damage reduction. float reducedDmg; if (type == CharacterAttackType.PHYSICAL || type == CharacterAttackType.SIEGE) { reducedDmg = dmg * (1 - armor / 50); } else if (type == CharacterAttackType.MAGICAL) { reducedDmg = dmg * (1 - magicArmor / 50); } else if (type == CharacterAttackType.MIXED) { reducedDmg = (dmg / 2) * (1 - armor / 50) + (dmg / 2) * (1 - magicArmor / 50); } else { reducedDmg = dmg; } Debug.Log("Damage after armor damage reduction = " + reducedDmg); if (recievingCharacter.currentHealth - reducedDmg <= 0) { recievingCharacter.currentHealth = 0; if (attackingCharacter is HeroCharacterStatManagement) { HeroCharacterStatManagement heroCharacterStatManager = (HeroCharacterStatManagement)attackingCharacter; heroCharacterStatManager.currentGold += recievingCharacter.goldGivenUponDeath; Debug.Log(recievingCharacter.characterStats.CharacterName + " died. " + recievingCharacter.goldGivenUponDeath + " gold added to " + attackingCharacter.characterStats.CharacterName); } } else { recievingCharacter.currentHealth -= reducedDmg; } }
public override void OnInspectorGUI() { if (m_chaEditData == null) { PrintLog("the chaEditorData is null"); return; } m_chaEditData.m_id = EditorGUILayout.IntField("PlayerID: ", m_chaEditData.m_id); m_chaEditData.m_resID = EditorGUILayout.IntField("PlayerResourceID:", m_chaEditData.m_resID); m_chaEditData.m_defaultName = EditorGUILayout.TextField("PlayerDefaultName: ", m_chaEditData.m_defaultName); m_chaEditData.m_scale = EditorGUILayout.FloatField("PlayerScale:", m_chaEditData.m_scale); m_chaEditData.m_walkSpeedX = EditorGUILayout.IntField("PlayerXSpeed: ", m_chaEditData.m_walkSpeedX); m_chaEditData.m_walkSpeedY = EditorGUILayout.IntField("PlayerYSpeed:", m_chaEditData.m_walkSpeedY); m_chaEditData.m_hatred = EditorGUILayout.FloatField("PlayerHatred:", m_chaEditData.m_hatred); m_chaEditData.m_lowFireAngle = EditorGUILayout.FloatField("PlayerLowFireAngle:", m_chaEditData.m_lowFireAngle); m_chaEditData.m_higFireAngle = EditorGUILayout.FloatField("PlayerHigFireAngle:", m_chaEditData.m_higFireAngle); m_chaEditData.m_fireRange = EditorGUILayout.IntField("PlayerFireRange:", m_chaEditData.m_fireRange); m_chaEditData.m_weaponPosition = EditorGUILayout.Vector2Field("PlayerWeaponPos", m_chaEditData.m_weaponPosition); m_chaEditData.m_beAttackBoxMinX = EditorGUILayout.IntField("PlayerBAtkBoxMinX:", m_chaEditData.m_beAttackBoxMinX); m_chaEditData.m_beAttackBoxMinY = EditorGUILayout.IntField("PlayerBAtkBoxMinY:", m_chaEditData.m_beAttackBoxMinY); m_chaEditData.m_beAttackBoxMaxX = EditorGUILayout.IntField("PlayerBAtkBoxMaxX:", m_chaEditData.m_beAttackBoxMaxX); m_chaEditData.m_beAttackBoxMaxY = EditorGUILayout.IntField("PlayerBAtkBoxMaxY:", m_chaEditData.m_beAttackBoxMaxY); if (GUILayout.Button("Add New State")) { if (m_chaEditData.IsAllStateExist()) { m_addState = AddState.FULLSTATE; } else { m_addState = AddState.NEWSTATE; } } EditorGUILayout.Space(); if (m_addState == AddState.FULLSTATE) { EditorGUILayout.LabelField("all states is used"); } else if (m_addState == AddState.NEWSTATE) { CharacterStateType newestState = m_chaEditData.GetNewestState(); m_chaEditData.AddNewState(newestState); m_addState = AddState.NONE; } EditorGUILayout.Space(); ///Debug.Log("yes"); for (int index = 0; index < m_chaEditData.m_lsStates.Count; index++) { CharacterEditorData.CharacterEditorStateData chaState = m_chaEditData.m_lsStates[index]; //Debug.Log(EditorGUILayout.EnumPopup("state:", chaState.m_newState)); CharacterStateType state = (CharacterStateType)EditorGUILayout.EnumPopup("state:", chaState.m_stateType); m_chaEditData.ChangeByState(chaState, state); chaState.m_animationName = EditorGUILayout.TextField("AnimationName:", chaState.m_animationName); int totFrame = EditorGUILayout.IntField("TotalFrame:", chaState.m_totFrame); if (totFrame != chaState.m_totFrame) { chaState.m_totFrame = totFrame; chaState.UpdateFramesSz(); } if (chaState.m_stateType == CharacterStateType.ATTACK) { if (GUILayout.Button("Add Frame Data", GUILayout.MaxWidth(130), GUILayout.MaxHeight(20))) { int newFrame = chaState.GetNewFrame(); //Debug.Log(newFrame); if (newFrame != -1) { chaState.AddFrameData(newFrame); } } EditorGUILayout.Space(); for (int i = 0; i < chaState.m_attackDatas.Count; i++) { CharacterEditorData.CharacterEditorAttackData frameData = chaState.m_attackDatas[i]; int frame = EditorGUILayout.IntField("Frame:", frameData.m_iFrame); if (chaState.IsLegalFrame(frame)) { //Debug.Log(frame); frameData.m_iFrame = frame; } CharacterAttackType attackType = (CharacterAttackType)EditorGUILayout.EnumPopup("AttackType:", frameData.m_attackType); chaState.ChangeFrameData(i, attackType); EditorGUILayout.Space(); if (frameData.m_attackType == CharacterAttackType.BOMB) { CharacterEditorData.CharacterEditorBombAttackData bomb = (CharacterEditorData.CharacterEditorBombAttackData)frameData; bomb.m_bombCofigID = EditorGUILayout.IntField("BombConfigID:", bomb.m_bombCofigID); bomb.m_damage = EditorGUILayout.IntField("Damge:", bomb.m_damage); bomb.m_centerDamage = EditorGUILayout.IntField("CenterDamage:", bomb.m_centerDamage); } if (GUILayout.Button("Remove this Frame")) { chaState.RemoveFrameData(frameData.m_iFrame); } EditorGUILayout.Space(); EditorGUILayout.Space(); } } if (GUILayout.Button("remove this state")) { m_chaEditData.RemoveOldState(index); } EditorGUILayout.Space(); EditorGUILayout.Space(); } EditorUtility.SetDirty(m_chaEditData); }
public AttackBaseData(CharacterAttackType eType) { Type = eType; }