Пример #1
0
    public void MakeFSM()
    {
        IdleState idle = new IdleState();

        idle.AddTransition(Transition.SawPlayer, StateID.AttackingState);
        idle.AddTransition(Transition.LostPlayer, StateID.MovingState);

        MoveState move = new MoveState();

        move.AddTransition(Transition.SawPlayer, StateID.AttackingState);

        AttackState attack = new AttackState();

        attack.AddTransition(Transition.LostPlayer, StateID.MovingState);
        attack.AddTransition(Transition.IdleTransition, StateID.IdleStateID);

        DefendState defend = new DefendState();

        EvadeState evade = new EvadeState();

        WinState win = new WinState();

        DeathState death = new DeathState();



        fsm = new FSMSystem();
        fsm.AddState(move);
        fsm.AddState(attack);
        fsm.AddState(idle);
        fsm.AddState(defend);
        fsm.AddState(evade);
        fsm.AddState(win);
        fsm.AddState(death);
    }
Пример #2
0
 public void OnStartDefending(DefendState defendState)
 {
     // Code here for when the defend state begins
     //    Use defendState.defensiveBonus to get the defensive bonus value
     fsm.SetDamageMultiplier(defendState.defensiveBonus);
     Debug.Log("Defending, now damage multiplier is " + defendState.defensiveBonus);
 }
Пример #3
0
    private void Awake()
    {
        idleState   = new IdleState(this);
        moveState   = new MoveState(this);
        attackState = new AttackState(this);
        castState   = new CastState(this);
        fleeState   = new FleeState(this);
        defendState = new DefendState(this);

        anim            = GetComponent <Animator>();
        walkSpeed       = 1.0f;
        navMeshAgent    = GetComponent <NavMeshAgent>();
        navSpeedDefault = navMeshAgent.speed;

        eyes          = transform.FindChild("Eyes");
        sightCollider = GetComponent <SphereCollider>();
        tm            = GameObject.FindWithTag("TeamManager").GetComponent <TeamManager>();
        ah            = GameObject.FindWithTag("AbilityHelper").GetComponent <AbilityHelper>();

        //this is a mess. These are "shared" variables between co-op ai and player script
        player         = GetComponent <Player>();
        animController = player.animController;
        abilities      = player.abilities;
        attributes     = player.attributes;
        watchedEnemies = player.watchedEnemies;
        visibleEnemies = player.visibleEnemies;
    }
Пример #4
0
 private void Awake()
 {
     if (null == Instance)
     {
         Instance = this;
     }
     else if (this != Instance)
     {
         Destroy(this);
     }
 }
Пример #5
0
 void Awake()
 {
     isFlip            = false;
     charcter_state[0] = new IdelState(gameObject);   //默认状态
     charcter_state[1] = new WalkState(gameObject);   //行走状态
     charcter_state[2] = new AttackState(gameObject); //攻击状态
     charcter_state[3] = new DefendState(gameObject); //防御状态
     CurrentState      = new State(gameObject);
     CurrentState      = charcter_state[0];
     DataInit();
     UiInit();
 }
Пример #6
0
    // Use this for initialization
    void Start()
    {
        // Suppose this could be set with a public enum variable
        teamTag_ = gameObject.tag;

        // Gain Access to the world manager script
        worldManager_ = worldManager_.GetComponent <WorldManager>();

        teamFlagCaptured_   = false;
        enemeyFlagCaptured_ = false;

        rend = GetComponent <Renderer>();

        if (teamTag_ == "BlueTeam")
        {
            team_ = Team.Blue;
            rend.material.color = Color.blue;
        }
        else
        {
            team_ = Team.Red;
            rend.material.color = Color.red;
        }

        moveSpeed        = 7.5f;
        isAlive          = true;
        didRespawn       = false;
        respawnPos       = gameObject.transform.position;
        isCapturing      = false;
        enemyUnitTarget_ = null;

        bulletLine = GetComponent <LineRenderer>();

        captureState_ = this.GetComponent <CaptureState>();
        defendState_  = this.GetComponent <DefendState>();

        captureState_.enabled = false;
        defendState_.enabled  = false;

        startNode = getClosestNode();

        IDXcounter_ = 0;
        hasFlag     = false;
    }
Пример #7
0
    void MakeFSM()
    {
        m_fsm                     = new FiniteStateMachine <VFCharacter, RoleState>(this);
        m_attack1State            = new Attack1State(); m_fsm.RegisterState(m_attack1State);
        m_attack2State            = new Attack2State(); m_fsm.RegisterState(m_attack2State);
        m_attack3State            = new Attack3State(); m_fsm.RegisterState(m_attack3State);
        m_battleWalkBackwardState = new BattleWalkBackwardState(); m_fsm.RegisterState(m_battleWalkBackwardState);
        m_battleWalkForwardState  = new BattleWalkForwardState(); m_fsm.RegisterState(m_battleWalkForwardState);
        m_battleWalkLeftState     = new BattleWalkLeftState(); m_fsm.RegisterState(m_battleWalkLeftState);
        m_battleWalkRightState    = new BattleWalkRightState(); m_fsm.RegisterState(m_battleWalkRightState);
        m_defineState             = new DefendState(); m_fsm.RegisterState(m_defineState);
        m_dieState                = new DieState(); m_fsm.RegisterState(m_dieState);
        m_hitState                = new HitState(); m_fsm.RegisterState(m_hitState);
        m_idleState               = new IdleState(); m_fsm.RegisterState(m_idleState);
        m_jumpState               = new JumpState(); m_fsm.RegisterState(m_jumpState);
        m_runState                = new RunState(); m_fsm.RegisterState(m_runState);
        m_walkState               = new WalkState(); m_fsm.RegisterState(m_walkState);
        m_tauntState              = new TauntState(); m_fsm.RegisterState(m_tauntState);

        m_fsm.ChangeState(RoleState.idle02);
    }
Пример #8
0
    private void ConstructFSM()
    {
        IdleState idle = new IdleState();

        idle.AddTransition(FSMTransitionType.CanBeMove, FSMStateType.Move);
        idle.AddTransition(FSMTransitionType.AttackWithSingleWield, FSMStateType.SingleWieldAttack);
        idle.AddTransition(FSMTransitionType.AttackWithDoubleHands, FSMStateType.DoubleHandsAttack);
        idle.AddTransition(FSMTransitionType.UsingRipple, FSMStateType.RippleAttack);
        idle.AddTransition(FSMTransitionType.UsingHeartAttack, FSMStateType.HeartAttack);
        idle.AddTransition(FSMTransitionType.UsingStygianDesolator, FSMStateType.StygianDesolator);
        idle.AddTransition(FSMTransitionType.UsingIceArrow, FSMStateType.IceArrow);
        idle.AddTransition(FSMTransitionType.UsingChoshimArrow, FSMStateType.ChoshimArrow);
        idle.AddTransition(FSMTransitionType.CanPickUp, FSMStateType.PickUp);
        idle.AddTransition(FSMTransitionType.UsingThunderBolt, FSMStateType.ThunderBolt);
        idle.AddTransition(FSMTransitionType.AttackWithSpear, FSMStateType.SpearAttack);
        idle.AddTransition(FSMTransitionType.CanDefend, FSMStateType.Defend);
        idle.AddTransition(FSMTransitionType.Falling, FSMStateType.Fall);

        MoveState move = new MoveState();

        move.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);
        move.AddTransition(FSMTransitionType.AttackWithSingleWield, FSMStateType.SingleWieldAttack);
        move.AddTransition(FSMTransitionType.AttackWithDoubleHands, FSMStateType.DoubleHandsAttack);
        move.AddTransition(FSMTransitionType.AttackWithSpear, FSMStateType.SpearAttack);



        DefendState defend = new DefendState();

        defend.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        SingleWieldAttackState singleWieldAttack = new SingleWieldAttackState();

        singleWieldAttack.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);
        singleWieldAttack.AddTransition(FSMTransitionType.AttackWithSingleWield, FSMStateType.SingleWieldAttack);
        singleWieldAttack.AddTransition(FSMTransitionType.CanBeMove, FSMStateType.Move);

        DoubleHandsAttackState dualWieldAttack = new DoubleHandsAttackState();

        dualWieldAttack.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);
        dualWieldAttack.AddTransition(FSMTransitionType.AttackWithDoubleHands, FSMStateType.DoubleHandsAttack);
        dualWieldAttack.AddTransition(FSMTransitionType.CanBeMove, FSMStateType.Move);


        SpearAttackState spearAttack = new SpearAttackState();

        spearAttack.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);
        spearAttack.AddTransition(FSMTransitionType.CanBeMove, FSMStateType.Move);

        RippleAttackState rippleAttack = new RippleAttackState();

        rippleAttack.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        HeartAttackState heartAttack = new HeartAttackState();

        heartAttack.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        StygianDesolatorState stygianDesolator = new StygianDesolatorState();

        stygianDesolator.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        IceArrowState iceArrow = new IceArrowState();

        iceArrow.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        ChoshimArrowState choshimArrow = new ChoshimArrowState();

        choshimArrow.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        ThunderBoltState thunderBolt = new ThunderBoltState();

        thunderBolt.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        PickUpState pickUp = new PickUpState();

        pickUp.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);

        FallState fall = new FallState();

        fall.AddTransition(FSMTransitionType.IsIdle, FSMStateType.Idle);



        AddFSMState(idle);
        AddFSMState(move);
        AddFSMState(defend);
        AddFSMState(singleWieldAttack);
        AddFSMState(dualWieldAttack);
        AddFSMState(rippleAttack);
        AddFSMState(heartAttack);
        AddFSMState(stygianDesolator);
        AddFSMState(iceArrow);
        AddFSMState(choshimArrow);
        AddFSMState(thunderBolt);
        AddFSMState(pickUp);
        AddFSMState(spearAttack);
        AddFSMState(fall);
    }
Пример #9
0
 public void OnStopDefending(DefendState defendState)
 {
     // Code here for when the defend state ends
 }
Пример #10
0
 public void OnStartDefending(DefendState defendState)
 {
     // Code here for when the defend state begins
     //    Use defendState.defensiveBonus to get the defensive bonus value
 }
Пример #11
0
 public void OnStartDefending(DefendState defendState)
 {
     Debug.Log("Start Defending");
     GetComponent <AIBehaviors>().SetDamageMultiplier(defendState.defensiveBonus);
 }
Пример #12
0
 public void OnStopDefending(DefendState defendState)
 {
     Debug.Log("Stop Defending");
     GetComponent <AIBehaviors>().SetDamageMultiplier(1.0f);
 }
Пример #13
0
 public void OnStopDefending(DefendState defendState)
 {
     // Code here for when the defend state ends
     fsm.SetDamageMultiplier(1.0f);
     Debug.Log("Stop defending, now damage multiplier is 1");
 }
 public void OnStopDefending(DefendState defendState)
 {
     // Code here for when the defend state ends
 }
 public void OnStartDefending(DefendState defendState)
 {
     // Code here for when the defend state begins
     //    Use defendState.defensiveBonus to get the defensive bonus value
 }