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); }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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 } } }; }