private void OnCollisionEnter(Collision collision) { Particles.Instance.CommenceShellExplosion(transform); bool fireAmmo = BulletService.Instance.fireAmmoBool; if (collision.gameObject.tag.Equals("Enemy")) { Particles.Instance.CommenceTankExplosion(collision.transform); EnemyView enemy = collision.gameObject.GetComponent <EnemyView>(); enemy.ModifyHealth(-damage); } if (collision.gameObject.tag.Equals("Player")) { Particles.Instance.CommenceTankExplosion(collision.transform); TankView player = collision.gameObject.GetComponent <TankView>(); player.ModifyHealth(-damage); } if (collision.gameObject.tag.Equals("Environment")) { if (fireAmmo) { Destroy(collision.gameObject); } Destroy(gameObject); } gameObject.SetActive(false); }
public TankMainWeapon(WeaponView view, IWeaponHolder weaponHolder, TankView tankView) { this.view = weaponFactory.Create("MainWeapon"); view.Transform.position = tankView.TurretSpawnPoint.position; this.weaponHolder = weaponHolder; weaponHolder.AddWeapon(this); }
public Entity CreateTank(float x, float y, int level = 0) { var entity = CreateEntity(EntityType.RedTank); var position = new Position(x, y, AntEnum.Parse <Direction>(r.Next(1, 5).ToString())); var myvars = vars.LightTank[level]; var view = new TankView(myvars[5], 0, position.direction); var listFsm = new Dictionary <string, EntityStateMachine>(); var moveFSM = new EntityStateMachine(entity); var aiFSM = new EntityStateMachine(entity); var motionFSM = new EntityStateMachine(entity); moveFSM.CreateState(States.Stand).Add <Stand>().WithInstance(new Stand()); moveFSM.CreateState(States.Turn).Add <Turn>().WithInstance(new Turn()); moveFSM.CreateState(States.Walk).Add <Walk>().WithInstance(new Walk()); moveFSM.ChangeState(States.Stand); aiFSM.CreateState(States.Idle).Add <Idle>().WithInstance(new Idle(7)); aiFSM.CreateState(States.Pursuit).Add <Pursuit>().WithInstance(new Pursuit()); aiFSM.CreateState(States.Attack).Add <Attack>().WithInstance(new Attack()); aiFSM.ChangeState(States.Idle); var addSpeed = Mathf.FromPercent(0.5f, myvars[0]); motionFSM.CreateState(States.Fast).Add <Controls>() .WithInstance(new Controls(new Vector2(myvars[0] + addSpeed))); motionFSM.CreateState(States.Slow).Add <Controls>() .WithInstance(new Controls(new Vector2(myvars[0] - addSpeed))); motionFSM.CreateState(States.Normal).Add <Controls>() .WithInstance(new Controls(new Vector2(myvars[0]))); motionFSM.ChangeState(States.Normal); listFsm.Add("MoveFSM", moveFSM); listFsm.Add("AiFSM", aiFSM); listFsm.Add("MotionFSM", motionFSM); entity .Add(position) .Add(view.GetView()) .Add(new Health(myvars[2], myvars[4])) .Add(new Damage(100)) .Add(new Tank()) .Add(new FSM(listFsm)) .Add(new AI(360, 210, new[] { EntityType.GreenTank })) .Add(new Gun(myvars[1], myvars[3])) .Add(new Collision(cellSize, 15)) .Add(new Motion(Vector2.Zero, r.Next(CellType.Segment, 10000))) .Add(new ActionAfterDeath(() => { gameField.ClearCell(position.prevCell); CreateEnemyExplosion(position.position); CreateQuake(); })); CreateRedOverlay(entity); CreateGreenHealthBar(entity); return(entity); }
public override void OnEnterState() { base.OnEnterState(); targetPlayer = TankService.Instance.GetCurrentPlayer(); SetNavmeshAgent(); enemyView.SetTankColor(changedColor); //InvokeRepeating("Fire", 1f, enemyView.GetFireRate()); }
public void ReplaceTankView(TankView newValue) { var index = GameComponentsLookup.TankView; var component = CreateComponent <TankViewComponent>(index); component.value = newValue; ReplaceComponent(index, component); }
public override void OnEnterState() { base.OnEnterState(); enemyView.SetTankColor(changedColor); target = TankService.Instance.GetCurrentPlayer(); newDirection = target.transform.position - transform.position; InvokeRepeating("Fire", 1f, enemyView.GetFireRate()); }
public TankController(TankModel tankModel, TankView tankPrefab) { TankView = GameObject.Instantiate <TankView>(tankPrefab); TankModel = tankModel; TankView.InitTankController(this); //Debug.Log("Tank Type"+TankType.); //TankView.Speed = tankModel.Speed; //TankView.Health = tankModel.Health; //TankView.Type = tankModel.Type; }
public TankController(TankModel tankModel, TankView tankPrefab) { TankModel = tankModel; // GameObject go = GameObject.Instantiate(tankPrefab); // TankView = go.GetComponent<TankView>(); TankView = GameObject.Instantiate <TankView>(tankPrefab); Debug.Log("Tank view controller created", TankView); }
public TankController(TankModel model, TankView prefab) { tankModel = model; tankView = GameObject.Instantiate <TankView>(prefab); //X location where new tank is spawned Debug.Log("Tank type -" + model.tankType); tankView.Init(this); //tankView.SetTankPos(4); }
IEnumerator RapidAmmoTime(TankView tankView, float timePeriod) { rapidAmmoBool = false; float delay = tankView.shootDelay; tankView.shootDelay = 0; yield return(new WaitForSeconds(timePeriod)); tankView.shootDelay = delay; rapidAmmoBool = true; }
private void CameraInit(TankView tankView) { CameraController.Ctx camCtx = new CameraController.Ctx { target = tankView.gameObject, cameraOffset = new Vector3(0, 15, -20), dampTime = _config.cameraDampTime, }; CameraController cameraController = cam.AddComponent <CameraController>() as CameraController; cameraController.SetCtx(camCtx); }
private void GetPLayerAudioSource() { player = TankService.Instance.GetCurrentPlayer(); if (player != null) { playerSource = player.GetComponent <AudioSource>(); } else { Debug.Log("player is null"); } }
IEnumerator RapidFireAmmoTime(TankView tankView, float timePeriod) { rapidAmmoBool = false; float delay = tankView.shootDelay; tankView.shootDelay = 0; BulletService.Instance.fireAmmoBool = true; yield return(new WaitForSeconds(timePeriod)); BulletService.Instance.fireAmmoBool = false; tankView.shootDelay = delay; rapidAmmoBool = true; }
private void GetPLayer() { player = TankService.Instance.GetCurrentPlayer(); if (player != null) { player = TankService.Instance.GetCurrentPlayer(); posDifference = player.transform.position - transform.position; } else { Debug.Log("player is null"); } }
private void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Player")) { if (other.gameObject.GetComponent <TankView>() != null) { UIManager.Instance.HealthMode(); TankView tankView = other.gameObject.GetComponent <TankView>(); tankView.ModifyHealth(+incrementHealthAmt); gameObject.SetActive(false); } } }
private void FixedUpdate() { if (player == null) { player = FindObjectOfType <TankView>(); } else { MainCamera.transform.LookAt(player.transform); TPPCam.m_Follow = player.transform; TPPCam.m_LookAt = player.transform; } }
public TankController(TankModel tankModel, TankView tankPrefab) //public TanController(TankModel tankModel, GameObject tankPrefab) { TankModel = tankModel; //GameObject go = GameObject.Instantiate(tankPrefab); //TankView = go.GetComponent<TankView>(); TankView = GameObject.Instantiate <TankView>(tankPrefab); TankView.SetController(this); TankModel.SetTankController(this); TankView.SetSpeed(TankModel.Speed); TankView.SetTurn(TankModel.Turn); TankView.Sethealth(TankModel.Health); }
private void CreateTanks() { List <FieldObject> freeCells = field.Grounds.Where(g => g.Position.X != Kolobok.Position.X && g.Position.Y != Kolobok.Position.Y) .ToList(); for (int i = 0; i < field.CountEnemies; i++) { FieldObject freeCell = freeCells[random.Next(freeCells.Count)]; field.Tanks.Add(new Tank(freeCell.Position.X, freeCell.Position.Y, FieldObjectType.Tank)); freeCells.Remove(freeCell); } tankView = new TankView(field.Tanks); }
public ITank CreateTank(bool forPlayer, GameMode mode, List<GameItemType> playerItems) { ITank newTank = CreateTank(forPlayer, mode); TankView tankView = (newTank as TankController).View; IUnitSkinDecorator skinDecorator = new TankSkinDecorator(_decorationCatalog, tankView); IUnitSkinDecorator helmetDecorator = new TankHelmetDecorator(_unitHelmetCatalog, tankView); foreach (var itemType in playerItems) { skinDecorator.ApplySkinItem(itemType); helmetDecorator.ApplySkinItem(itemType); } return newTank; }
private void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Player")) { if (other.gameObject.GetComponent <TankView>() != null) { UIManager.Instance.RampageMode(); TankView tankView = other.gameObject.GetComponent <TankView>(); if (rapidAmmoBool) { StartCoroutine(RapidFireAmmoTime(tankView, rampageTime)); } gameObject.SetActive(false); } } }
private void CreateTank(int percent) { if (_objects.Tanks.Count < 3 && rnd.Next(100) <= percent) { int x = rnd.Next(_view.MapWidth - 30); int y = rnd.Next(_view.MapHeight - 30); var tank = new TankView(x, y, (ushort)rnd.Next(4), 30, 30); // Если он на свободном месте генерируется if (_objects.Walls.Find(wall => ObjectCollision(wall, tank)) == null && ObjectCollision(_objects.Player, tank) == false && _objects.Water.Find(water => ObjectCollision(water, tank)) == null && _objects.Tanks.Find(tnk => tnk != tank ? ObjectCollision(tnk, tank) : false) == null) { _objects.Tanks.Add(tank); } } }
private void TankInit() { TankView view = Instantiate(tankView, new Vector3(0, 1, 0), Quaternion.identity); TankView.Ctx tankViewCtx = new TankView.Ctx { tankForwardSpeed = _config.tankForwardSpeed, tankBackSpeed = _config.tankBackSpeed, tankRotateSpeed = _config.tankRotateSpeed, }; view.SetCtx(tankViewCtx); Tank.Ctx tankCtx = new Tank.Ctx { tankView = view, horizontalAngle = _config.horizontalAngle, reloadTime = _config.reloadTime, signHit = _signPosition.SignPositon, verticalAngle = _config.verticalAngle, }; _tank = new Tank(tankCtx); ControlInit(view, _tank, _tank.GetGun()); CameraInit(view); }
private void ControlInit(TankView tankView, Tank tank, Gun gun) { KeyboardController control = tankView.gameObject.AddComponent <KeyboardController>() as KeyboardController; control.SetControl(tank, gun); }
private void Form1_Load(object sender, EventArgs e) { _tankView = new TankView(_areaView.TankNumber); _wallView = new WallView(_areaView.AreaSize.Height, _areaView.AreaSize.Width); tankPoint = TankStart(1); }
public void OnBulletCollideEvent(TankView T1, TankView T2) { OnBulletCollide?.Invoke(T1, T2); }
public TankController(TankModel tankModel, TankView tankPrefab) { TankModel = tankModel; TankView = GameObject.Instantiate <TankView>(tankPrefab); Debug.Log("tankview created", TankView); }
public void followPlayerCamera() { tankView = TankService.Instance.tankLists[0].TankView; }
//[SerializeField] //protected Color color; private void Awake() { tankView = GetComponent <TankView>(); }
public TankSkinDecorator(IUnitsSkinCatalog decorator, TankView tankView) { _decorator = decorator; _tankView = tankView; }
public void followPlayerAchievement() { this.tankview = TankService.Instance.tankLists[0].TankView; }