Example #1
0
    // コピーコンストラクタ
    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;
    }
Example #2
0
    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);
    }
Example #3
0
    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);
    }
Example #4
0
    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);
    }