// metoda zjistujici nove pokyny pro pohyb robotu ze strategii, zjistuje zdali nepadl gol, updatuje cas a pohybuje scenou public void Tick() { //save actual situation to storage storage.Ball.Position = From3Dto2D(GameBall.transform.position); storage.LeftRobots[0].Position = From3Dto2D(BluePlayer1.transform.position); storage.LeftRobots[1].Position = From3Dto2D(BluePlayer2.transform.position); storage.LeftRobots[2].Position = From3Dto2D(BluePlayer3.transform.position); storage.LeftRobots[3].Position = From3Dto2D(BluePlayer4.transform.position); storage.LeftRobots[4].Position = From3Dto2D(BlueGoal.transform.position); storage.RightRobots[0].Position = From3Dto2D(RedPlayer1.transform.position); storage.RightRobots[1].Position = From3Dto2D(RedPlayer2.transform.position); storage.RightRobots[2].Position = From3Dto2D(RedPlayer3.transform.position); storage.RightRobots[3].Position = From3Dto2D(RedPlayer4.transform.position); storage.RightRobots[4].Position = From3Dto2D(RedGoal.transform.position); //********************* LEFT **************************** leftStorage.Ball.Position = storage.Ball.Position; leftStorage.myRobots[0].Position = storage.LeftRobots[0].Position; leftStorage.myRobots[1].Position = storage.LeftRobots[1].Position; leftStorage.myRobots[2].Position = storage.LeftRobots[2].Position; leftStorage.myRobots[3].Position = storage.LeftRobots[3].Position; leftStorage.myRobots[4].Position = storage.LeftRobots[4].Position; leftStorage.oppntRobots[0].Position = storage.RightRobots[0].Position; leftStorage.oppntRobots[1].Position = storage.RightRobots[1].Position; leftStorage.oppntRobots[2].Position = storage.RightRobots[2].Position; leftStorage.oppntRobots[3].Position = storage.RightRobots[3].Position; leftStorage.oppntRobots[4].Position = storage.RightRobots[4].Position; //********************* RIGHT **************************** rightStorage.Ball.Position = storage.Ball.Position; rightStorage.myRobots[0].Position = storage.RightRobots[0].Position; rightStorage.myRobots[1].Position = storage.RightRobots[1].Position; rightStorage.myRobots[2].Position = storage.RightRobots[2].Position; rightStorage.myRobots[3].Position = storage.RightRobots[3].Position; rightStorage.myRobots[4].Position = storage.RightRobots[4].Position; rightStorage.oppntRobots[0].Position = storage.LeftRobots[0].Position; rightStorage.oppntRobots[1].Position = storage.LeftRobots[1].Position; rightStorage.oppntRobots[2].Position = storage.LeftRobots[2].Position; rightStorage.oppntRobots[3].Position = storage.LeftRobots[3].Position; rightStorage.oppntRobots[4].Position = storage.LeftRobots[4].Position; //volanie funkci TickStrategy z DLL object[] leftSt = new object[] { leftStorage }; object[] rightSt = new object[] { rightStorage }; MethodTickLeft.Invoke(leftInstance, leftSt); MethodTickRight.Invoke(rightInstance, rightSt); // *********** LEFT *************** //load new situation from storage and move robots BP1.MoveTo(From2Dto2D(leftStorage.myRobots[0].PositionMove)); BP2.MoveTo(From2Dto2D(leftStorage.myRobots[1].PositionMove)); BP3.MoveTo(From2Dto2D(leftStorage.myRobots[2].PositionMove)); BP4.MoveTo(From2Dto2D(leftStorage.myRobots[3].PositionMove)); BG.MoveTo(From2Dto2D(leftStorage.myRobots[4].PositionMove)); //load boal position to robots BP1.ballPosition = From2Dto2D(leftStorage.Ball.Position); BP2.ballPosition = From2Dto2D(leftStorage.Ball.Position); BP3.ballPosition = From2Dto2D(leftStorage.Ball.Position); BP4.ballPosition = From2Dto2D(leftStorage.Ball.Position); BG.ballPosition = From2Dto2D(leftStorage.Ball.Position); // *********** RIGHT *************** //load new situation from storage and move robots RP1.MoveTo(From2Dto2D(rightStorage.myRobots[0].PositionMove)); RP2.MoveTo(From2Dto2D(rightStorage.myRobots[1].PositionMove)); RP3.MoveTo(From2Dto2D(rightStorage.myRobots[2].PositionMove)); RP4.MoveTo(From2Dto2D(rightStorage.myRobots[3].PositionMove)); Vector2D a = new Vector2D(-rightStorage.myRobots[4].PositionMove.X, rightStorage.myRobots[4].PositionMove.Y); RG.MoveTo(From2Dto2D(rightStorage.myRobots[4].PositionMove)); //load boal position to robots RP1.ballPosition = From2Dto2D(rightStorage.Ball.Position); RP2.ballPosition = From2Dto2D(rightStorage.Ball.Position); RP3.ballPosition = From2Dto2D(rightStorage.Ball.Position); RP4.ballPosition = From2Dto2D(rightStorage.Ball.Position); RG.ballPosition = From2Dto2D(rightStorage.Ball.Position); LogToHolder(); //************ adaptStrategy *************** //ak uzivatel ma v DLL adapt strategy a chce ho vyuzivat //left if (StaticVariable.leftAdaptation == true) { List <object> newRules = (List <object>)leftAdaptStrategyMethod.Invoke(leftStrategyAdaptation, new object[] { logHolder, leftInstance }); if (newRules.Count > 0) { MethodLeftAdaptStrategy.Invoke(leftInstance, new object[] { newRules }); Debug.Log("Added rules: " + newRules.Count); } } //right if (StaticVariable.rightAdaptation == true) { List <object> newRules = (List <object>)rightAdaptStrategyMethod.Invoke(rightStrategyAdaptation, new object[] { logHolder, rightInstance }); if (newRules.Count > 0) { MethodRightAdaptStrategy.Invoke(rightInstance, new object[] { newRules }); Debug.Log("Added rules: " + newRules.Count); } } }
// Token: 0x060001D2 RID: 466 RVA: 0x000182D4 File Offset: 0x000164D4 public void DrawMan() { ePart BPRHand = this.BodyParts[6]; BPRHand.OriginalRotation = this.ModelRotationY * Matrix.CreateFromAxisAngle(this.ModelRotationY.Left, this.InsiderHandXRotation - 0.7853982f); BPRHand.Rotation *= Matrix.CreateFromAxisAngle(this.ModelRotation.Left, this.InsiderHandXCurrRotation); ePart BPLHand = this.BodyParts[1]; BPLHand.OriginalRotation = this.ModelRotationY; this.InsiderHandXCurrRotation = 0f; bool flag = this.CamPosType == RacingCameraAngle.Back; checked { if (flag) { int i = 0; foreach (ModelMesh mesh in this.eType.Model.Meshes) { ePart BP = this.BodyParts[i]; foreach (Effect effect6 in mesh.Effects) { BasicEffect effect = (BasicEffect)effect6; effect.AmbientLightColor = new Vector3((float)((double)BP.Hurt / 25.0), 0f, 0f); effect.Projection = Main.projectionMatrix; effect.View = Main.viewMatrix; effect.World = Matrix.Multiply(Matrix.Multiply(this.eType.Transforms, this.BodyParts[i].Rotation), Matrix.CreateTranslation(this.BodyParts[i].RelativePosition + this.Position)); } mesh.Draw(); i++; } bool flag2 = !Information.IsNothing(this.CTool); if (flag2) { int b = 0; foreach (ModelMesh mesh2 in this.CTool.Model.Meshes) { foreach (Effect effect7 in mesh2.Effects) { BasicEffect effect2 = (BasicEffect)effect7; effect2.Projection = Main.projectionMatrix; effect2.View = Main.viewMatrix; Matrix MeshTransform = this.CTool.Rotation * Matrix.CreateTranslation(this.CTool.RelativePosition + this.Position); effect2.World = this.CTool.Transforms[mesh2.ParentBone.Index] * MeshTransform; } mesh2.Draw(); b++; } } } else { bool flag3 = this.CamPosType == RacingCameraAngle.Inside; if (flag3) { ModelMesh meshRHand = this.eType.Model.Meshes[6]; foreach (Effect effect8 in meshRHand.Effects) { BasicEffect effect3 = (BasicEffect)effect8; effect3.AmbientLightColor = new Vector3((float)((double)BPRHand.Hurt / 25.0), 0f, 0f); effect3.Projection = Main.projectionMatrix; effect3.View = Main.viewMatrix; effect3.World = this.eType.Transforms * BPRHand.Rotation * Matrix.CreateTranslation(BPRHand.RelativePosition + this.Position); } meshRHand.Draw(); ModelMesh meshLHand = this.eType.Model.Meshes[1]; foreach (Effect effect9 in meshLHand.Effects) { BasicEffect effect4 = (BasicEffect)effect9; effect4.AmbientLightColor = new Vector3((float)((double)BPLHand.Hurt / 25.0), 0f, 0f); effect4.Projection = Main.projectionMatrix; effect4.View = Main.viewMatrix; effect4.World = this.eType.Transforms * BPLHand.Rotation * Matrix.CreateTranslation(BPLHand.RelativePosition + this.Position); } meshLHand.Draw(); bool flag4 = !Information.IsNothing(this.CTool); if (flag4) { int b2 = 0; foreach (ModelMesh meshC in this.CTool.Model.Meshes) { foreach (Effect effect10 in meshC.Effects) { BasicEffect effect5 = (BasicEffect)effect10; effect5.Projection = Main.projectionMatrix; effect5.View = Main.viewMatrix; Matrix MeshTransform2 = this.CTool.Rotation * Matrix.CreateTranslation(this.CTool.RelativePosition + this.Position); effect5.World = this.CTool.Transforms[meshC.ParentBone.Index] * MeshTransform2; } meshC.Draw(); b2++; } } } } foreach (ePart BP2 in this.BodyParts) { BP2.Hurten(-1f); } } }