Пример #1
0
    public void Init(Creature owner, RefMob refMob, RefItem refItem, int level, int evolution)
    {
        base.Init(refMob, level, evolution);

        m_owner = owner;
        m_owner.AddFollower(this);

        CreatureType = m_owner.CreatureType;
        m_consumedSP = refItem.consumedSP;

        if (m_creatureProperty.MoveSpeed == 0f)
        {
            EnableNavMeshObstacleAvoidance(false);
        }

        Transformation(transform, evolution);

        switch(refMob.mobAI)
        {
        case MobAIType.Normal:
            m_ai = new MobAINormal();
            break;
        case MobAIType.Rotation:
            m_ai = new MobAIRotation();
            break;
        case MobAIType.FlyingAround:
            m_ai = new MobAIFlyingAround();
            break;
        case MobAIType.ItemShuttle:
            m_ai = new MobAIItemShuttle();
            break;
        case MobAIType.Pickup:
            m_ai = new MobAIPickup();
            ((MobAIPickup)(m_ai)).SetOwner(m_owner);
            CreatureType = Type.Npc;
            gameObject.layer = 0;
            break;
        case MobAIType.Follow:
            m_ai = new MobAIFollow();
            ((MobAIFollow)(m_ai)).SetOwner(m_owner);
            CreatureType = Type.ChampNpc;
            gameObject.layer = 0;
            StartCoroutine(DecSpEffect());
            break;
        }

        m_ai.Init(this);
    }