private void CalculateValues() { mStateMachin = new StateMachin(); mHealthLoss = (0.2f * FoodHealth * 0.07f) + (0.4f * Speed * 0.1f) + (0.4f * TurnMomentum * 0.002f) + (0.2f * SightDistance * 0.16f); Speed *= (float)Math.Pow(0.98f, mBugStructur.Count); TurnMomentum *= (float)Math.Pow(0.98f, mBugStructur.Count); mHealthLoss *= (float)Math.Pow(1.01f, mBugStructur.Count); mChildHealth = mHealthLoss * 80 * (float)Math.Pow(0.9f, mBugStructur.Count); mAChildHealth = mChildHealth * 2 * (float)Math.Pow(0.94f, mBugStructur.Count); SightDistance *= (float)Math.Pow(0.96f, Speed); pBrain.Speed = Speed; Health = 20; GetComponent<SphereCollider>().radius = MaxDistance(); pGetBugDNA = GetBugDNA; RegisterStatetransisons(); mStateMachin.SetToken(BugToken.Start); }
private void RegisterStates() { mStateMachin = new StateMachin(); mStateMachin.RegisterState(UIToken.BugMenuOpen, new UIState[] { UIState.Hidden }, UIState.BugMenu, BugMenuOpen); mStateMachin.RegisterState(UIToken.BugMenuClose, new UIState[] { UIState.BugMenu }, UIState.Hidden, BugMenuClose); mStateMachin.RegisterState(UIToken.ScanUIOpen, new UIState[] { UIState.BugMenu }, UIState.Scan, OpenScan); mStateMachin.RegisterState(UIToken.ScanUIClose, new UIState[] { UIState.Scan }, UIState.BugMenu, CloseScan); }
private void RegisterStates() { mStateMachin = new StateMachin(); mStateMachin.RegisterState(MousToken.Pickup, new MousState[] { MousState.Normal }, MousState.PickedUp, delegate { PickUp?.Invoke(); mTarget.SetTocken(BugToken.PickUp); }); mStateMachin.RegisterState(MousToken.Drop, new MousState[] { MousState.PickedUp }, MousState.Normal, delegate { Drop?.Invoke(); mTarget.SetTocken(BugToken.Drop); }); mStateMachin.RegisterState(MousToken.DeletBug, new MousState[] { MousState.PickedUp }, MousState.Normal, delegate { mTarget = null; }); mStateMachin.RegisterState(MousToken.EnterInfo, new MousState[] { MousState.PickedUp }, MousState.OverInfo, null); mStateMachin.RegisterState(MousToken.ExitInfo, new MousState[] { MousState.OverInfo }, MousState.PickedUp, null); mStateMachin.RegisterState(MousToken.InfoClick, new MousState[] { MousState.OverInfo }, MousState.Scaning, delegate { OpenScan?.Invoke(); mTarget.SetTocken(BugToken.OpenScan); }); mStateMachin.RegisterState(MousToken.InfoClick, new MousState[] { MousState.Scaning }, MousState.PickedUp, delegate { CloseScan?.Invoke(); mTarget.SetTocken(BugToken.CloseScan); }); }
private void RegisterStatetransisons() { mStateMachin = new StateMachin(); mStateMachin.RegisterState(BugToken.Start, new BugState[] { BugState.Loading }, BugState.Normal, null); mStateMachin.RegisterState(BugToken.End, AllBugSate.GetStates, BugState.Loading, delegate { Destroy(gameObject); }); mStateMachin.RegisterState(BugToken.PickUp, new BugState[] { BugState.Normal, BugState.Horny }, BugState.InAir, PickUp); mStateMachin.RegisterState(BugToken.Drop, new BugState[] { BugState.InAir, BugState.OverDelet }, BugState.Normal, Drop); mStateMachin.RegisterState(BugToken.EnterDelet, new BugState[] { BugState.InAir }, BugState.OverDelet, null); mStateMachin.RegisterState(BugToken.ExitDelet, new BugState[] { BugState.OverDelet }, BugState.InAir, null); mStateMachin.RegisterState(BugToken.OpenScan, new BugState[] { BugState.InAir }, BugState.Scaneing, OpenScan); mStateMachin.RegisterState(BugToken.CloseScan, new BugState[] { BugState.Scaneing }, BugState.InAir, CloseScan); mStateMachin.RegisterState(BugToken.MakeHorny, new BugState[] { BugState.Normal }, BugState.Horny, null); mStateMachin.RegisterState(BugToken.LoseHrony, new BugState[] { BugState.Horny }, BugState.Normal, null); }