Exemple #1
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);
    }
Exemple #2
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;
        }
    }
Exemple #3
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;
        }
    }
Exemple #4
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;
        }
    }
Exemple #5
0
    void Healing(ref Zz zz, ref Wuwu wuwu, ref Doudou doudou)
    {
        switch (zz.CurrentStats)
        {
        case Zz.Stats.Prepare:
        {
            wuwu.HealAdding(ref zz);
            zz.CurrentTime += Time.deltaTime;
            if (zz.CurrentTime >= 1.0f)
            {
                zz.CurrentStats = Zz.Stats.Heal;
                zz.CurrentTime  = 0.0f;
                Debug.Log("zz starts Healing doudou");
            }
        }
        break;

        case Zz.Stats.Heal:
        {
            wuwu.HealAdding(ref zz);
            zz.CurrentTime += Time.deltaTime;
            zz.HealingTime += Time.deltaTime;
            if (zz.HealingTime >= 1.0f)
            {
                doudou.HP     += zz.Heal;
                zz.HealingTime = 0.0f;
                Debug.Log("After healing, Doudou.HP is" + doudou.HP);
            }

            if (zz.CurrentTime >= 2.0f)
            {
                zz.CurrentStats = Zz.Stats.Remove;
                zz.CurrentTime  = 0.0f;
                Debug.Log("zz starts Removing");
            }
        }
        break;

        case Zz.Stats.Remove:
            if (zz.CurrentTime >= 1f)
            {
                zz.CurrentStats = Zz.Stats.Prepare;
                zz.CurrentTime  = 0.0f;
                Debug.Log("zz starts Preparing");
            }
            break;
        }
    }
Exemple #6
0
        public void SateMachine(ref Doudou doudou, ref Zz zz, ref WuWu wuwu, ref MengMeng meng)
        {
            CurrentTime += Time.deltaTime;
            //Debug.Log(CurrentTime);
            switch (state)
            {
            case Wupeng.State.Eating:
                meng.StateMachine(ref this);
                if (CurrentTime - 3f >= 0)
                {
                    CurrentTime = 0;
                    Energy      = 100;
                    state       = Wupeng.State.Beating;
                    Debug.Log("Wupeng is Beating");
                }
                break;

            case Wupeng.State.Beating:
                meng.StateMachine(ref this);
                if (CurrentTime - 1f >= 0)
                {
                    CurrentTime = 0;
                    Energy     -= 10;
                    doudou.HP  -= Atk;
                    Debug.Log("doudou.HP is " + doudou.HP);
                    Debug.Log("Wupeng.Energy is " + Energy);
                    if (Energy <= 0)
                    {
                        state = Wupeng.State.Sleeping;
                        Debug.Log("Wupeng is Sleeping");
                    }
                }
                break;

            case Wupeng.State.Sleeping:
                Atk = Base_Atk;
                zz.SateMachine(ref doudou, ref wuwu);
                if (CurrentTime - 5f >= 0)
                {
                    CurrentTime = 0;
                    state       = Wupeng.State.Eating;
                    Debug.Log("Wupeng is Eating");
                }
                break;
            }
        }
Exemple #7
0
        public void SateMachine(ref Doudou doudou, ref WuWu wuwu)
        {
            CurrentTime += Time.deltaTime;
            switch (state)
            {
            case Zz.State.Preparing:
                wuwu.StateMachine(ref this);
                if (CurrentTime >= 1f)
                {
                    CurrentTime = 0;
                    state       = Zz.State.Healing;
                    Debug.Log("zz is Healing");
                }
                break;

            case Zz.State.Healing:
                wuwu.StateMachine(ref this);
                if (CurrentTime > HealingTime)
                {
                    HealingTime++;
                    doudou.HP += Heal;
                    Heal       = Base_Heal;
                    Debug.Log("doudou.Hp is" + doudou.HP);
                }
                if (CurrentTime >= 2f)
                {
                    CurrentTime = 0;
                    HealingTime = 1f;
                    state       = Zz.State.Removing;
                    Debug.Log("zz is Removing");
                }
                break;

            case Zz.State.Removing:
                if (CurrentTime >= 1f)
                {
                    CurrentTime = 0;
                    state       = Zz.State.Preparing;
                    Debug.Log("zz is Preparing");
                }
                break;
            }
        }
Exemple #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
                }
            }
        };
    }