Esempio n. 1
0
    public void MengmengComeOn(ref MengMeng meng, ref Wupeng wupeng)
    {
        if (wupeng.state != State_Wupeng.Sleep)
        {
            meng.timer += Time.deltaTime;

            if (meng.timer > (1.0f / (float)meng.attackSpeed))
            {
                meng.timer  = 0.0f;
                meng.count += 1;

                if (meng.count % 2 == 0)
                {
                    Debug.Log("meng打鼓加buff,wupeng获得 " + meng.attackAdd + " 点攻击增益");
                    wupeng.attack += meng.attackAdd;
                    wupeng.buff   += meng.attackAdd;
                }
            }
        }
        if (wupeng.state == State_Wupeng.Sleep)
        {
            wupeng.attack -= wupeng.buff;
            wupeng.buff    = 0;
        }
    }
Esempio n. 2
0
    public void WupengUpdate(ref Wupeng wupeng, ref ZZ zz, ref Doudou doudou, ref Wuwu wuwu)
    {
        WupengUpdate(ref wupeng, ref doudou);

        ZZRecoverDoudou(ref wupeng, ref zz, ref doudou);

        WuwuComeOn(ref zz, ref wuwu);
    }
Esempio n. 3
0
    void EatingSleepingBeatingDoudou(ref Wupeng wupeng, ref Doudou doudou, ref Zz zz, ref Wuwu wuwu, ref Mengmeng mengmeng)
    {
        switch (wupeng.CurrentStats)
        {
        case Wupeng.Stats.Eat:
        {
            wupeng.CurrentTime += Time.deltaTime;
            mengmeng.AtkAdding(ref wupeng);
            //问:大于和等于的时间应该是不一样的?第二遍开始不再debug吴鹏开始打豆豆了。为什么?
            if (wupeng.CurrentTime > 3.0f)
            {
                wupeng.Nrg          = 100f;
                wupeng.CurrentStats = Wupeng.Stats.Beat;
                wupeng.CurrentTime  = 0.0f;
                Debug.Log("wupeng starts beating doudou");
            }
        }
        break;

        case Wupeng.Stats.Beat:
        {
            wupeng.CurrentTime += Time.deltaTime;
            mengmeng.AtkAdding(ref wupeng);
            if (wupeng.CurrentTime > 1.0f)
            {
                wupeng.Nrg -= 10;
                doudou.HP  -= wupeng.Atk;
                Debug.Log("Wupeng.Energy drops to " + wupeng.Nrg);
                Debug.Log("doudou.HP drops to" + doudou.HP);
                wupeng.CurrentTime = 0.0f;
                if (wupeng.Nrg < 0.0f)
                {
                    wupeng.CurrentStats = Wupeng.Stats.Sleep;
                    wupeng.CurrentTime  = 0.0f;
                    wupeng.Atk          = wupeng.AtkBase;
                    Debug.Log("Wupeng.Atk returns to" + wupeng.Atk);
                    Debug.Log("Wupeng starts sleeping");
                }
            }
        }
        break;

        case Wupeng.Stats.Sleep:
        {
            wupeng.CurrentTime += Time.deltaTime;
            Healing(ref zz, ref wuwu, ref doudou);
            if (wupeng.CurrentTime >= 5.0f)
            {
                zz.Heal = zz.HealBase;
                Debug.Log("zz.Heal returns to" + zz.Heal);
                wupeng.CurrentStats = Wupeng.Stats.Eat;
                wupeng.CurrentTime  = 0.0f;
                Debug.Log("Wupeng starts eating");
            }
        }
        break;
        }
    }
Esempio n. 4
0
    public void ZZRecoverDoudou(ref Wupeng wupeng, ref ZZ zz, ref Doudou doudou)
    {
        if (wupeng.state == State_Wupeng.Sleep)
        {
            if (zz.state == State_ZZ.Wait)
            {
                zz.state = State_ZZ.Prepare;
            }

            switch (zz.state)
            {
            case State_ZZ.Prepare:
                zz.timer += Time.deltaTime;
                if (zz.timer > 1.0f)
                {
                    zz.timer = 0.0f;
                    Debug.Log("zz开始治疗");
                    zz.state = State_ZZ.ReCover;
                }
                break;

            case State_ZZ.ReCover:

                zz.timer += Time.deltaTime;
                if (zz.timer > 1.0f)
                {
                    doudou.hp += zz.recover;
                    zz.timer   = 0.0f;
                    zz.count  += 1;
                    Debug.Log("zz给doudou加血" + zz.recover);

                    if (zz.count == 2)     //加完两次血更换状态
                    {
                        zz.state = State_ZZ.End;
                        Debug.Log("zz拆除工具");
                    }
                }
                break;

            case State_ZZ.End:
                zz.timer += Time.deltaTime;
                if (zz.timer > 1.0f)
                {
                    zz.timer = 0.0f;
                    Debug.Log("zz治疗结束");
                    zz.state = State_ZZ.Wait;
                }
                break;
            }
        }
        else
        {
            zz.state = State_ZZ.Wait;
        }
    }
Esempio n. 5
0
 public void AtkAdding(ref Wupeng wupeng)
 {
     CurrentTime += Time.deltaTime;
     if (CurrentTime > AtkAddTime)
     {
         BuffTimes++;
         CurrentTime = 0.0f;
         if (BuffTimes % 2 == 0)
         {
             wupeng.Atk += AtkAdd;
             Debug.Log("wupeng.Atk rises to" + wupeng.Atk);
         }
     }
 }
Esempio n. 6
0
    public void WupengUpdate(ref Wupeng wupeng, ref Doudou doudou)
    {
        switch (wupeng.state)
        {
        case State_Wupeng.Eat:
            wupeng.timer += Time.deltaTime;
            if (wupeng.timer > 3.0f)
            {
                wupeng.enegy += 100;
                wupeng.timer  = 0.0f;
            }

            if (wupeng.enegy == 100)
            {
                Debug.Log("wupeng打豆豆");
                wupeng.state = State_Wupeng.Beat;
                wupeng.timer = 0.0f;
            }

            break;

        case State_Wupeng.Beat:
            wupeng.timer += Time.deltaTime;
            if (wupeng.timer > 1.0)
            {
                wupeng.timer  = 0.0f;
                wupeng.enegy -= 10;

                doudou.hp -= wupeng.attack;
                Debug.Log("doudou被打" + wupeng.attack + "点血");
            }
            if (wupeng.enegy == 0)
            {
                wupeng.state = State_Wupeng.Sleep;
                Debug.Log("wupeng睡觉");
            }
            break;

        case State_Wupeng.Sleep:
            wupeng.timer += Time.deltaTime;
            if (wupeng.timer > 5.0)
            {
                wupeng.timer = 0.0f;
                wupeng.state = State_Wupeng.Eat;
                Debug.Log("wupeng吃饭");
            }
            break;
        }
    }
Esempio n. 7
0
 public void StateMachine(ref Wupeng wupeng)
 {
     CurrentTime += Time.deltaTime;
     if (CurrentTime >= AtkAddTime)
     {
         AtkAddTime += 1.0f / 4.0f;
         BangingTimes++;
         Debug.Log(BangingTimes);
         if (BangingTimes % 2 == 0)
         {
             wupeng.Atk += AtkAdd;
             Debug.Log("wupeng.Atk is" + wupeng.Atk);
         }
     }
 }
Esempio n. 8
0
    void Start()
    {
        //work01
        wupeng = new Wupeng()
        {
            enegy = 0, attack = 8, state = State_Wupeng.Eat, timer = 0.0f, buff = 0
        };

        //work02
        doudou = new Doudou()
        {
            name = "DouDou", hp = 1000
        };

        //work04
        zz = new ZZ()
        {
            name = "zz", recover = 5, timer = 0.0f, state = State_ZZ.Prepare, count = 0, buff = 0
        };


        //work06
        wuwu = new Wuwu()
        {
            name = "wuwu", recoverAdd = 1, recoverSpeed = 3, timer = 0.0f
        };

        //work07
        meng = new MengMeng()
        {
            name = "meng", attackAdd = 1, attackSpeed = 4, timer = 0.0f, count = 0
        };

        //work08
        tlight = new TrafficLight()
        {
            state  = State_TrafficLight.Yellow, green_last = 2.0f, red_last = 3.0f, yello_last = 1.5f, timer = 0.0f,
            yellow = imgYellow, green = imgGreen, red = imgRed
        };

        //work09
        timer = new Timer()
        {
            timer = 0.0f
        };

        //work10
        rocket = new Rocket()
        {
            image       = imgRocket,
            speed       = 2f,
            state       = State_Rocket.counting,
            lunchDevice = new LunchDevice()
            {
                countdown_Prepare = new Timer()
                {
                    timer = 10.0f, temper = 10.0f
                }, countdown_lunch = new Timer()
                {
                    timer = 2.0f, temper = 2.0f
                }
            }
        };
    }