// コピーコンストラクタ public MagicProfile(MagicProfile source) { this.Name = source.Name; this.ID = source.ID; this.EffectTypeValue = source.EffectTypeValue; this.EffectValue = source.EffectValue; // 武器性能 this.Attack = source.Attack; this.AttackCriticalRate = source.AttackCriticalRate; this.AttackTimes = source.AttackTimes; }
private TurnCommand SpecialCommand() { Vector2 TargetPos; List <Enemy> enemies = GameManager.instance.GetEnemyList(); foreach (Enemy e in enemies) { TargetPos = e.logicalPos; if (Status.UsableMagicList.Count != 0) { foreach (string m in Status.UsableMagicList) { MagicProfile tmp = MagicManager.instance.GetMagicProfileFromID(m); if (tmp.EffectTypeValue == MagicProfile.MagicEffectType.SummonMonster) { if (TurnCount > 10) { UseMagic = m; TurnCount -= 10; return(TurnCommand.CastMagic); } } if (tmp.FigureTypeValue == MagicProfile.MagicFigureType.Shot && tmp.EffectTypeValue == MagicProfile.MagicEffectType.Damege) { if ((TargetPos - logicalPos).x == (TargetPos - logicalPos).y || (TargetPos - logicalPos).x == 0 || (TargetPos - logicalPos).y == 0) { if (RogueGeneric.Distance(TargetPos, logicalPos) > tmp.Range) { continue; } if (CheckHitLine <Enemy>(logicalPos, TargetPos, AttackableLayer, true)) { SetDirection(TargetPos - logicalPos); SetAttackLine(GetDirection()); UseMagic = m; return(TurnCommand.CastMagic); } } } } } } return(TurnCommand.Undef); }
public Magic GenerateMagicFromID(string id, Vector2 pos) { MagicProfile p = GetMagicProfileFromID(id); if (p == null) { return(null); } Magic magic = Instantiate(GetMagicTempleteFromGfxId(p.GfxID), pos, new Quaternion()); magic.Profile = p; return(magic); }
public bool Compare(MagicProfile source) { if (source == null) { return(false); } if ( this.ID != source.ID || this.EffectTypeValue != source.EffectTypeValue || this.EffectValue != source.EffectValue || this.Attack != source.Attack || this.AttackCriticalRate != source.AttackCriticalRate || this.AttackTimes != source.AttackTimes ) { return(false); } return(true); }