void DoAttack() { CombatPlayer player = GameObject.FindObjectOfType <CombatPlayer>(); if (player == null) { return; } int hitSkill = 50 + Level * 10; if (Random.Range(0, hitSkill) < Random.Range(0, player.Dodge())) { CombatBubbleSpawner.SpawnBubble( player.transform.position, "Dodged!", CombatBubbleSpawner.BubbleTypes.Round, Color.green ); return; } int maxDamage = ((Bossiness - 1) * 2 + Level) * (1 + Difficulty.DiffLevel); int damage = Random.Range(maxDamage / 2, maxDamage); player.TakeDamage(damage, damageType); }
private Combat.AIPlayer getRivalPlayer(int combatPlayerId, Combat.UserPlayer userPlayer) { if (null == userPlayer) { Log.Error("not found combat.userplayer"); return(null); } if (false == ExtCombatPlayer.IsValid(combatPlayerId)) { Log.Error(string.Format("invalid combat player id; {0}", combatPlayerId)); return(null); } // @note: CombatPlayer(DataTable) differ from Combat.UserPlayer, Combat.AIPlayer CombatPlayer rivalPlayer = Manager.Instance.DT.CombatPlayer[combatPlayerId]; int hp = Mathf.RoundToInt(userPlayer.Hp * Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); hp = Nurture.Character.Adjust(hp); int criticalProbability = userPlayer.CriticalProbability; int mp = 0, attack = 0, defense = 0, intellect = 0, tactic = 0; switch (rivalPlayer.orient) { case Combat.AIPlayer.EOrient.Attack: mp = Def.MIN_STAT; attack = Nurture.Character.Adjust(Mathf.RoundToInt(userPlayer.AttackPower * Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO)); defense = getRivalStat(userPlayer.Defense, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); intellect = Def.MIN_STAT; tactic = Nurture.Character.Adjust(Mathf.RoundToInt(userPlayer.Tactic * Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO)); break; case Combat.AIPlayer.EOrient.Trick: mp = getRivalStat(userPlayer.Mp, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); attack = Def.MIN_STAT; defense = Nurture.Character.Adjust(Mathf.RoundToInt(userPlayer.Defense * Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO)); intellect = Nurture.Character.Adjust(Mathf.RoundToInt(userPlayer.Intellect * Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO)); tactic = getRivalStat(userPlayer.Tactic, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); break; case Combat.AIPlayer.EOrient.All: mp = getRivalStat(userPlayer.Mp, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); attack = getRivalStat(userPlayer.AttackPower, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); defense = getRivalStat(userPlayer.Defense, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); intellect = getRivalStat(userPlayer.Intellect, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); tactic = getRivalStat(userPlayer.Tactic, Def.COMBAT_RIVAL_AI_STAT_MIN_RATIO, Def.COMBAT_RIVAL_AI_STAT_MAX_RATIO); break; default: Log.Error("invalid combat.ai.player orient"); break; } return(new Combat.AIPlayer(Manager.Instance.Object.CombatMode, combatPlayerId, hp, mp, criticalProbability, attack, defense, intellect, tactic)); }
public void OnStart(Combat.Player player) { _player = player; CombatPlayer p = Manager.Instance.DT.CombatPlayer[_player.Id]; set(p.idle); if (player.Id == Def.MAIN_CHARACTER_ID) { rotate180Yaxis(Image.gameObject); } FloatingText.Hide(); }
// constructor public UserPlayer(CombatMode mode) : base(mode, Def.MAIN_CHARACTER_ID) { _name = Manager.Instance.Object.MainCharacter.Name; CombatPlayer p = Manager.Instance.DT.CombatPlayer[Id]; _criticalProbability = p.criticalProbability; Nurture.Character c = Manager.Instance.Object.NurtureMode.Character; _hp = c.Stamina; _mp = c.Intellect; _attack = c.Attack; _defense = c.Defense; _intellect = c.Intellect; _tactic = c.Tactic; }
public AIPlayer(CombatMode mode, int id, int hp, int mp, int criticalProbability, int attack, int defense, int intellect, int tactic) : base(mode, id) { CombatPlayer p = Manager.Instance.DT.CombatPlayer[id]; _orient = p.orient; Character c = Manager.Instance.DT.Character[p.characterId]; _name = c.name; _hp = hp; _mp = mp; _criticalProbability = criticalProbability; _attack = attack; _defense = defense; _intellect = intellect; _tactic = tactic; }
// constructor public AIPlayer(CombatMode mode, int id) : base(mode, id) { CombatPlayer p = Manager.Instance.DT.CombatPlayer[id]; _orient = p.orient; Character c = Manager.Instance.DT.Character[p.characterId]; _name = c.name; _hp = p.hp; _mp = p.intellect; _criticalProbability = p.criticalProbability; _attack = p.attack; _defense = p.defense; _intellect = p.intellect; _tactic = p.tactic; }
private void onTrick(int playerId, int damage) { CombatPlayer p = Manager.Instance.DT.CombatPlayer[_player.Id]; Sprite s = null; if (_player.Id == playerId) { s = p.trick; } else { s = p.dfs; FloatingText.Float(damage.ToString(), NormalSize, NormalColor); } set(s); }
private void onCriticalAttack(int playerId, int damage) { CombatPlayer p = Manager.Instance.DT.CombatPlayer[_player.Id]; Sprite s = null; if (_player.Id == playerId) { s = p.att; } else { s = p.dmg; FloatingText.Float(damage.ToString(), CriticalSize, CriticalColor); } set(s); }
void Start() { Instance = this; }
private void onEnd(Combat.CombatMode.EUserGameState state) { CombatPlayer p = Manager.Instance.DT.CombatPlayer[_player.Id]; set(p.idle); }
private void onStartAIBattle() { CombatPlayer p = Manager.Instance.DT.CombatPlayer[_player.Id]; set(p.idle); }