public void Fire(IFireable fireable, int row, int col) { if (hit == 17 || row < 1 || row > 10 || col < 1 || col > 10) { return; } var curpoint = shotHistory[row - 1, col - 1]; if (curpoint != null) { return; } if (fireable.Fire(col, row) == Result.HIT) { shotHistory[row - 1, col - 1] = "y"; hit++; Fire(fireable, row + 1, col); Fire(fireable, row - 1, col); Fire(fireable, row, col + 1); Fire(fireable, row, col - 1); } else { shotHistory[row - 1, col - 1] = "x"; return; } }
public void Play(IFireable fireable) { for (int i = 1; i < 11; i++) { Fire(fireable, i, i); } int startRow = 1; for (int i = 10; i >= 0; i--) { Fire(fireable, startRow, i); startRow++; } for (int i = 1; i < 11; i++) { Fire(fireable, 6, i); } for (int i = 1; i < 11; i++) { Fire(fireable, i, 6); } }
public static Fireable Of(this Fireable fireable, IFireable subemitter) { if (fireable == null) { throw new ArgumentNullException("fireable"); } var lowest = GetLowestChild(fireable); lowest.Child = subemitter; return(fireable); }
public void Fire(bool pressed) { if (ammo_ != null) { ammo_.Fire(1f, GlobalPosition, GlobalRotation, Vector2.Up.Rotated(GlobalRotation)); if (!ammo_.IsLaser()) { GetNode("/root").GetChild(0).AddChild(ammo_ as Node2D); ammo_ = (IFireable)ammoScene_.Instance(); } } }
public void Play(IFireable fireable) { Fire(fireable, 1, 3); Fire(fireable, 1, 5); Fire(fireable, 1, 7); Fire(fireable, 1, 9); Fire(fireable, 1, 11); Fire(fireable, 3, 13); Fire(fireable, 5, 15); Fire(fireable, 7, 17); Fire(fireable, 9, 19); }
public void Play(IFireable fireable) { Fire(fireable, 1, 3); Fire(fireable, 1, 5); Fire(fireable, 1, 7); Fire(fireable, 1, 9); Fire(fireable, 1, 11); Fire(fireable, 3, 13); Fire(fireable, 5, 15); Fire(fireable, 7, 17); Fire(fireable, 9, 19); }
/// <summary> /// Start is called on the frame when a script is enabled just before /// any of the Update methods is called the first time. /// </summary> void Start() { if (DanmakuType == null) { Debug.LogWarning($"Emitter doesn't have a valid DanmakuPrefab", this); return; } var set = CreateSet(DanmakuType); set.AddModifiers(GetComponents <IDanmakuModifier>()); fireable = Arc.Of(Line).Of(set); }
public void Play(IFireable fireable) { var result = fireable.Fire(2, 1); Console.WriteLine(result); result = fireable.Fire(2, 1); Console.WriteLine(result); fireable.Fire(2, 1); fireable.Fire(2, 1); fireable.Fire(2, 1); fireable.Fire(2, 1); fireable.Fire(2, 1); fireable.Fire(4, 3); fireable.Fire(6, 7); }
public void Play(IFireable fireable) { var result = Result.MISS; while (result != Result.MISSION_COMPLETED) { var x = RANDOM.Next(1, 11); var y = RANDOM.Next(1, 11); x--; y--; if (board[x, y] != "X") { board[x, y] = "X"; result = fireable.Fire(x+1, y+1); } } }
// Called when the node enters the scene tree for the first time. public override void _Ready() { poly_ = GetNode <Polygon2D>("Shape"); ammo_ = (IFireable)ammoScene_.Instance(); var rigid = (ammo_ as RigidBody2D); if (rigid != null) { rigid.Sleeping = true; } if (ammo_.IsLaser()) { (ammo_ as RayCast2D).Enabled = true; // TODO: this throws error currently AddChild(ammo_ as Node2D); } }
public void Play(IFireable fireable) { var isMissionCompleted = false; for (int i = 1; i <= 10; i++) { for (int j = 1; j <= 10; j++) { var result = fireable.Fire(j, i); if (result == Result.MISSION_COMPLETED) { isMissionCompleted = true; break; } } if (isMissionCompleted) break; } }
private void FireAround(IFireable fireable, int col, int row) { if (col > 10 || col < 1 || row > 10 || row < 1) return; if (IsAvaliableTarget(col - 1, row - 1)) { if (fireable.Fire(col, row) == Result.HIT) AddHistory(col, row, "o"); else { AddHistory(col, row, "x"); } } else { AddHistory(col, row, "x"); } }
public void Fire(IFireable fireable, int col, int odd) { var _tempRow = (col - odd) * -1; if (col > 10 || _tempRow == 0 || _tempRow > 10 || _tempRow < 1 || shotHistory[col - 1, _tempRow - 1] != null) return; if (fireable.Fire(col, _tempRow) == Result.HIT) { AddHistory(col, _tempRow, "o"); FireAround(fireable, col - 1, _tempRow); FireAround(fireable, col + 1, _tempRow); FireAround(fireable, col, _tempRow - 1); FireAround(fireable, col, _tempRow + 1); } else { AddHistory(col, _tempRow, "x"); } Fire(fireable, col + 1, odd); }
private void FireDown(IFireable fireable, int row, int column, int hit) { if (hit == 17) { return; } if (row < 1 || row > 10 || column < 1 || column > 10) { return; } var initRow = row - 1; var initCol = column - 1; var current = shotHistory[initRow, initCol]; var top = initRow > 0 ? shotHistory[initRow - 1, initCol] : ""; var bottom = initRow < 9 ? shotHistory[initRow + 1, initCol] : ""; var left = initCol > 0 ? shotHistory[initRow, initCol - 1] : ""; var right = initCol < 9 ? shotHistory[initRow, initCol + 1] : ""; if (shotHistory[initRow, initCol] == null) { if (right != "miss") { if (fireable.Fire(column, row) == Result.HIT) { hit++; shotHistory[initRow, initCol] = "hit"; FindAnyShip(fireable, row, column, hit, shotHistory); //Fire(fireable, row, column - 1, hit, tempShot); } else { shotHistory[initRow, initCol] = "miss"; } } else { shotHistory[initRow, initCol] = "miss"; } } FireDown(fireable, row + 1, column, hit); }
public void Play(IFireable fireable) { int hit = 0; //for (int target = 1; target <= 10; target++) //{ // if (fireable.Fire(target, target) == Result.HIT) // { // hit++; // if (hit == 17) // continue; // } //} for (var column = 1; column <= 10; column++) { FireDown(fireable, 1, column, hit); } }
public void Play(IFireable fireable) { int hit = 0; //for (int target = 1; target <= 10; target++) //{ // if (fireable.Fire(target, target) == Result.HIT) // { // hit++; // if (hit == 17) // continue; // } //} for (var column = 1; column <= 10; column++) { FireDown(fireable, 1, column, hit); } }
private void FindAnyShip(IFireable fireable, int row, int col, int hitPoint, string[,] historyStrings) { if (hitPoint == 17) { return; } if (row < 1 || row > 10 || col < 1 || col > 10) { return; } var initRow = row - 1; var initCol = col - 1; var current = historyStrings[initRow, initCol]; var top = initRow > 0 ? historyStrings[initRow - 1, initCol] : ""; var bottom = initRow < 9 ? historyStrings[initRow + 1, initCol] : ""; var left = initCol > 0 ? historyStrings[initRow, initCol - 1] : ""; var right = initCol < 9 ? historyStrings[initRow, initCol + 1] : ""; if (historyStrings[initRow, initCol] == null) { if (right != "miss") { if (fireable.Fire(col, row) == Result.HIT) { hitPoint++; historyStrings[initRow, initCol] = "hit"; FindAnyShip(fireable, row, col + 1, hitPoint, historyStrings); FindAnyShip(fireable, row, col - 1, hitPoint, historyStrings); } else { historyStrings[initRow, initCol] = "miss"; } } else { historyStrings[initRow, initCol] = "miss"; } } }
private void Update() { //Check if weapon has changed currentWeapon = gameObject.GetComponentInChildren <IFireable>(); if (Input.GetKeyDown(shootKey)) { if (currentWeapon != null) { currentWeapon.Shoot(); } } if (Input.GetKeyDown(reloadKey)) { if (currentWeapon != null) { currentWeapon.Reload(); } } }
public void Fire(IFireable fireable, int col, int odd) { var _tempRow = (col - odd) * -1; if (col > 10 || _tempRow == 0 || _tempRow > 10 || _tempRow < 1 || shotHistory[col - 1, _tempRow - 1] != null) { return; } if (fireable.Fire(col, _tempRow) == Result.HIT) { AddHistory(col, _tempRow, "o"); FireAround(fireable, col - 1, _tempRow); FireAround(fireable, col + 1, _tempRow); FireAround(fireable, col, _tempRow - 1); FireAround(fireable, col, _tempRow + 1); } else { AddHistory(col, _tempRow, "x"); } Fire(fireable, col + 1, odd); }
private void FireAround(IFireable fireable, int col, int row) { if (col > 10 || col < 1 || row > 10 || row < 1) { return; } if (IsAvaliableTarget(col - 1, row - 1)) { if (fireable.Fire(col, row) == Result.HIT) { AddHistory(col, row, "o"); } else { AddHistory(col, row, "x"); } } else { AddHistory(col, row, "x"); } }
public static bool NonInteractableClick <T>(CompositeDisposable cd, IEngine engine, Clickable src, IFireable <T> dst, Func <T> valueGetter, Func <bool> checker = null) { if (!src) { return(NotBinded()); } UnityAction action = () => { if (checker != null && !checker()) { return; } dst.Fire(valueGetter()); }; src.onNonInteractableClick.AddListener(action); cd.Add(new DisposableAction(() => src.onNonInteractableClick.RemoveListener(action))); return(true); }
private void FindAnyShip(IFireable fireable, int row, int col, int hitPoint, string[,] historyStrings) { if (hitPoint == 17) return; if (row < 1 || row > 10 || col < 1 || col > 10) return; var initRow = row - 1; var initCol = col - 1; var current = historyStrings[initRow, initCol]; var top = initRow > 0 ? historyStrings[initRow - 1, initCol] : ""; var bottom = initRow < 9 ? historyStrings[initRow + 1, initCol] : ""; var left = initCol > 0 ? historyStrings[initRow, initCol - 1] : ""; var right = initCol < 9 ? historyStrings[initRow, initCol + 1] : ""; if (historyStrings[initRow, initCol] == null) { if (right != "miss") { if (fireable.Fire(col, row) == Result.HIT) { hitPoint++; historyStrings[initRow, initCol] = "hit"; FindAnyShip(fireable, row, col + 1, hitPoint, historyStrings); FindAnyShip(fireable, row, col - 1, hitPoint, historyStrings); } else { historyStrings[initRow, initCol] = "miss"; } } else { historyStrings[initRow, initCol] = "miss"; } } }
public void Play(IFireable fireable) { throw new NotImplementedException(); }
private void Awake() { shooter = GetComponent <IFireable>(); UpdatePatternDetails(); }
private void FireDown(IFireable fireable, int row, int column, int hit) { if (hit == 17) return; if (row < 1 || row > 10 || column < 1 || column > 10) return; var initRow = row - 1; var initCol = column - 1; var current = shotHistory[initRow, initCol]; var top = initRow > 0 ? shotHistory[initRow - 1, initCol] : ""; var bottom = initRow < 9 ? shotHistory[initRow + 1, initCol] : ""; var left = initCol > 0 ? shotHistory[initRow, initCol - 1] : ""; var right = initCol < 9 ? shotHistory[initRow, initCol + 1] : ""; if (shotHistory[initRow, initCol] == null) { if (right != "miss") { if (fireable.Fire(column, row) == Result.HIT) { hit++; shotHistory[initRow, initCol] = "hit"; FindAnyShip(fireable, row, column, hit, shotHistory); //Fire(fireable, row, column - 1, hit, tempShot); } else { shotHistory[initRow, initCol] = "miss"; } } else { shotHistory[initRow, initCol] = "miss"; } } FireDown(fireable, row + 1, column, hit); }
private void CollectWeapon(IFireable fireable) { this.weapon = fireable; this.weapon.Kickbacks.Subscribe(x => this.body.LinearVelocity += x); }
void FireBullet() { IFireable bullet = BulletFactory.Instance.Create(m_type); bullet.Fire(this.transform.position, this.transform.rotation * m_bulletVelocity); }
public void SetProjectile(GameObject newProjectile) { projectile = newProjectile; projectileFireable = projectile.GetComponent <IFireable> (); }
public void AddTrigger(IFireable trigger) { _triggers.Add(trigger); }
public Robot(Engine engine) : base(engine) { this.weapon = Fireable.Empty; }