internal void StatusZmove(PokemonProxy pm, MoveTypeE move) { if (move.Id == Ms.MEMENTO || move.Id == Ms.PARTING_SHOT) { pm.Tile.SetTurnCondition(Cs.Zheal); } }
public void Mimic(PokemonProxy pm, MoveTypeE move) { Add(new Mimic() { Pm = pm.Id, Move = move.Id }); }
public void ChangeMove(MoveTypeE from, MoveTypeE to) { for (int i = 0; i < _moves.Count; ++i) { if (_moves[i].MoveE == from) { _moves[i] = new MoveProxy(to, this); break; } } }
static MoveTypeE() { using (var sr = new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("PokemonBattleOnline.Game.Host.dat.Moves.txt"))) { Moves = new MoveTypeE[RomData.MOVES + 1]; for (int i = 1; i <= RomData.MOVES; ++i) { Moves[i] = new MoveTypeE(RomData.GetMove(i), sr.ReadLine()); } } }
public static bool ChangeLv7D(this PokemonProxy pm, PokemonProxy by, MoveTypeE move) { bool r = false; var c = move.Lv7DChanges; if (c != null) { bool showFail = move.Move.Category == MoveCategory.Status; if (c.Type1 == StatType.All) { r = ChangeLv7D(pm, by, showFail, false, c.Change1, c.Change1, c.Change1, c.Change1, c.Change1); } else { var ac = CanChangeLv7D(pm, by, c.Type1, c.Change1, showFail); if (ac != 0) { ChangeLv7DImplement(pm, by, c.Type1, ac, null); r = true; } ac = CanChangeLv7D(pm, by, c.Type2, c.Change2, showFail); if (ac != 0) { ChangeLv7DImplement(pm, by, c.Type2, ac, null); r = true; } ac = CanChangeLv7D(pm, by, c.Type3, c.Change3, showFail); if (ac != 0) { ChangeLv7DImplement(pm, by, c.Type3, ac, null); r = true; } if (r) { ITs.WhiteHerb(pm); } } } return(r); }
public void StartExecute(MoveTypeE move, Tile selectTile = null, string log = "UseMove") { Move = move; if (STs.CanExecuteMove(Attacker, Move)) { if (log != null) { Attacker.ShowLogPm(log, Move.Id); } InitAtkContext.Execute(this); MoveE.BuildDefContext(this, selectTile); //蓄力技如果选择的是压力特性的精灵,在第一回合就会扣取2点PP,即使最后攻击到的不是压力特性的精灵。 if (MoveProxy != null) { ATs.Pressure(this, Move.GetRange(Attacker)); } MoveExecute.Execute(this); } else { FailAll(null); } }
public void StartExecute(MoveTypeE move, Tile selectTile = null, string log = "UseMove", bool canChangeZmove = true) { Move = move; if (Attacker.SelectZmove && canChangeZmove && !move.Zmove && move.Move.Category != MoveCategory.Status) { Move = MoveTypeE.Get(GameHelper.CommonZmove(Move.Move)); trans = true; transmove = move; } else { trans = false; } if (STs.CanExecuteMove(Attacker, Move)) { InitAtkContext.Execute(this); MoveE.BuildDefContext(this, selectTile); //蓄力技如果选择的是压力特性的精灵,在第一回合就会扣取2点PP,即使最后攻击到的不是压力特性的精灵。 if (MoveProxy != null) { ATs.Pressure(this, Move.GetRange(Attacker)); } if (log == "FSDD") { Target.Defender.ShowLogPm(log, Move.Id); } else if (log != null) { Attacker.ShowLogPm(log, Move.Id); } MoveExecute.Execute(this, selectTile); } else { FailAll(null); } }
internal MoveProxy(Move move, MoveTypeE moveE, PokemonProxy owner) { Move = move; MoveE = moveE; Owner = owner; }
internal MoveProxy(MoveTypeE move, PokemonProxy owner) { Move = new Move(move.Move, 5); MoveE = move; Owner = owner; }
internal MoveProxy(Move move, PokemonProxy owner) { Move = move; MoveE = MoveTypeE.Get(move.Type); Owner = owner; }