コード例 #1
0
    private void Start()
    {
        Main_SM = this;
        Boss    = this.GetComponent <Tank_Boss>();
        player  = FindObjectOfType <Temp_Player>();

        Idle             = new Tank_State_Idle(Main_SM, Boss, "Idle", Boss.TimeBetweenAttacks_1);
        Prepare          = new Tank_State_Prepare(Main_SM, Boss, "Prepare", Boss.TimeBeforeDriveLaunch);
        DriveBy          = new Tank_State_DriveBy(Main_SM, Boss, "DriveBy", 0);
        DriveOff         = new Tank_State_DriveOff(Main_SM, Boss, "DriveOff", 0);
        DriveIn          = new Tank_State_DriveIn(Main_SM, Boss, "DriveIn", 0);
        DriveCombo       = new Tank_State_DriveCombo(Main_SM, Boss, "DriveCombo", Boss.DriveComboWaitDuration);
        Reposition       = new Tank_State_Reposition(Main_SM, Boss, "Reposition", Boss.ReposDuration, Boss.ReposPrepDuration);
        AttackJumpSingle = new Tank_State_AttackJump(Main_SM, Boss, "AttackJump_1", Boss.JumpPrepDuration_S, Boss.JumpDuration_S, Boss.JumpHitDuration_S, Boss.JumpReturnDuration, 1);
        AttackJumpTriple = new Tank_State_AttackJump(Main_SM, Boss, "AttackJump_3", Boss.JumpPrepDuration_M, Boss.JumpDuration_M, Boss.JumpHitDuration_M, Boss.JumpReturnDuration, 3);
        ShootGunSingle   = new Tank_State_ShootGun(Main_SM, Boss, "ShootGun_1", Boss.GunPrepDuration_S, Boss.GunHitDuration_S, Boss.GunRetDuration_S, 1);
        ShootGunTriple   = new Tank_State_ShootGun(Main_SM, Boss, "ShootGun_3", Boss.GunPrepDuration_M, Boss.GunHitDuration_M, Boss.GunRetDuration_M, 3);
        ShootMortar_1    = new Tank_State_ShootMortar(Main_SM, Boss, "Mortar_1", Boss.MortarPrepDuration, Boss.MortarTimeBtwnShot, Boss.MortarRetDuration, 1);
        ShootMortar_2    = new Tank_State_ShootMortar(Main_SM, Boss, "Mortar_2", Boss.MortarPrepDuration, Boss.MortarTimeBtwnShot, Boss.MortarRetDuration, 2);
        ShootOil_1       = new Tank_State_ShootOil(Main_SM, Boss, "Oil_1", Boss.OilPrepDur, Boss.OilHitDuration, Boss.OilRetDur, 1);
        ShootOil_2       = new Tank_State_ShootOil(Main_SM, Boss, "Oil_2", Boss.OilPrepDur, Boss.OilHitDuration, Boss.OilRetDur, 2);

        Stunned = new Tank_State_Stunned(Main_SM, Boss, "Stunned", Boss.StunDuration);
        Dead    = new Tank_State_Dead(Main_SM, Boss, "Dead", 0);

        //MoveList_1 = new Tank_State[] { ShootMortar_1 };
        MoveList_1 = new Tank_State[] { DriveBy, AttackJumpSingle, AttackJumpSingle, ShootMortar_1, ShootOil_1, Reposition };
        MoveList_2 = new Tank_State[] { DriveBy, AttackJumpTriple, AttackJumpTriple, ShootMortar_2, ShootMortar_2, ShootOil_1, ShootOil_2, Reposition };

        attackStateList = new Tank_State[] { AttackJumpTriple };
        //attackStateList = new Tank_State[] { ShootGunTriple, ShootGunSingle, DriveBy, AttackJumpSingle, AttackJumpTriple, Reposition };

        ChangeState(Idle);
    }
コード例 #2
0
 // Main Constructor - used for most states
 public Tank_State(Tank_StateManager myManager, Tank_Boss thisBoss, string name, float dur)
 {
     SM       = myManager;
     Boss     = thisBoss;
     Name     = name;
     Duration = dur;
 }
コード例 #3
0
 // Constructor used for Shoot Gun
 public Tank_State(Tank_StateManager myManager, Tank_Boss thisBoss, string name, float prepDur, float hitDur, float retDur, int numAtk)
 {
     SM             = myManager;
     Boss           = thisBoss;
     Name           = name;
     PrepDuration   = prepDur;
     HitDuration    = hitDur;
     ReturnDuration = retDur;
     NumAttacks     = numAtk;
 }
コード例 #4
0
    private void Awake()
    {
        sp                  = this.GetComponent <SpriteRenderer>();
        rb                  = this.GetComponent <Rigidbody2D>();
        Manager             = this.GetComponent <Tank_StateManager>();
        player              = FindObjectOfType <Player>();
        pLocA               = PlayerLocations[0];
        pLocB               = PlayerLocations[1];
        pLocC               = PlayerLocations[2];
        pLocD               = PlayerLocations[3];
        BossLocations       = new Location_Boss[] { BossLocA, BossLocB, BossLocC, BossLocD, BossLocAB, BossLocCD };
        currentBossLocation = BossLocC;

        DriveSpeed    = DriveSpeed_1;
        DriveOffDelay = DriveOffDelay_1;

        health        = MaxHealth;
        Phase2_Thresh = MaxHealth / 2;
        isAlive       = true;
    }
コード例 #5
0
 public Tank_State_DriveBy(Tank_StateManager myManager, Tank_Boss myBoss, string myName, float myDur) : base(myManager, myBoss, myName, myDur)
 {
 }
コード例 #6
0
 public Tank_State_Reposition(Tank_StateManager myManager, Tank_Boss myBoss, string myName, float myDur, float myPrepDur) : base(myManager, myBoss, myName, myDur, myPrepDur)
 {
 }
コード例 #7
0
 public Tank_State_Stunned(Tank_StateManager myStateManager, Tank_Boss myBoss, string myName, float myDur) : base(myStateManager, myBoss, myName, myDur)
 {
 }
コード例 #8
0
 public Tank_State_ShootOil(Tank_StateManager myManager, Tank_Boss myBoss, string myName, float myPrepDur, float myHitDur, float myRetDur, int numAtk) : base(myManager, myBoss, myName, myPrepDur, myHitDur, myRetDur, numAtk)
 {
 }
コード例 #9
0
 public Tank_State_ShootMortar(Tank_StateManager myManager, Tank_Boss myBoss, string myName, float myPrepDur, float myHitDur, float myRetDur, int numAtk) : base(myManager, myBoss, myName, myPrepDur, myHitDur, myRetDur, numAtk)
 {
     StartingHitDuration = myHitDur;
 }