/// <summary> /// The to attack function. /// </summary> /// <param name="hit"> /// The hit. /// </param> private void CommandToAttack(RaycastHit hit) { if (hit.transform.GetComponent <Enemy>()) { if (this.theUnit != null) { // Attack with a single unit switch (this.theUnit.GetType().ToString()) { case "Assets.Scripts.Extractor": Extractor extractor = this.theUnit as Extractor; extractor.Target = (IDamageable)hit.transform.GetComponent(typeof(IDamageable)); extractor.TheExtractorFsm.Feed("IdleToBattle"); break; case "Assets.Scripts.Miner": Miner miner = this.theUnit as Miner; miner.Target = (IDamageable)hit.transform.GetComponent(typeof(IDamageable)); miner.TheMinerFsm.Feed("IdleToBattle"); break; } } // Attack with multiple units if (this.Units.Count > 0) { foreach (GameObject go in this.Units) { IGather unit = (IGather)go.GetComponent(typeof(IGather)); switch (unit.GetType().ToString()) { case "Assets.Scripts.Extractor": Extractor extractor = unit as Extractor; extractor.Target = (IDamageable)hit.transform.GetComponent(typeof(IDamageable)); extractor.TheExtractorFsm.Feed("IdleToBattle"); break; case "Assets.Scripts.Miner": Miner miner = unit as Miner; miner.Target = (IDamageable)hit.transform.GetComponent(typeof(IDamageable)); miner.TheMinerFsm.Feed("IdleToBattle"); break; } } } } else { this.CommandToIdle(); } }
/// <summary> /// The command to move function. /// </summary> private void CommandToMove() { if (this.theUnit != null & this.theclickedobject != null) { this.theUnit.SetTheTargetPosition(this.clickdestination); } if (this.Units.Count > 0) { foreach (GameObject p in this.Units) { IGather g = (IGather)p.GetComponent(typeof(IGather)); g.SetTheTargetPosition(this.clickdestination); } } }
/// <summary> /// The command to idle function. /// </summary> private void CommandToIdle() { // Send unit back to idle if (this.theUnit != null) { switch (this.theUnit.GetType().ToString()) { case "Assets.Scripts.Extractor": Extractor extractor = this.theUnit as Extractor; extractor.Target = null; extractor.TheExtractorFsm.Feed("BattleToIdle"); break; case "Assets.Scripts.Miner": Miner miner = this.theUnit as Miner; miner.Target = null; miner.TheMinerFsm.Feed("BattleToIdle"); break; } } // Send multiple units back to idle if (this.Units.Count > 0) { foreach (GameObject go in this.Units) { IGather unit = (IGather)go.GetComponent(typeof(IGather)); switch (unit.GetType().ToString()) { case "Assets.Scripts.Extractor": Extractor extractor = unit as Extractor; extractor.Target = null; extractor.TheExtractorFsm.Feed("BattleToIdle"); break; case "Assets.Scripts.Miner": Miner miner = unit as Miner; miner.Target = null; miner.TheMinerFsm.Feed("BattleToIdle"); break; } } } }
void handleOperation4(IList <MPI.Request> reqList_complete) { int[] arg1_values = new int[channel.RemoteSize]; int[] arg2_values = new int[channel.RemoteSize]; int[] arg3_values = new int[channel.RemoteSize]; int[] arg4_values = new int[channel.RemoteSize]; int[] arg5_values = new int[channel.RemoteSize]; int[] arg6_values = new int[channel.RemoteSize]; foreach (MPI.Request req in reqList_complete) { MPI.ReceiveRequest recv_req = (MPI.ReceiveRequest)req; MPI.CompletedStatus status = recv_req.Test(); Tuple <int, int, int, int, int, int> value = (Tuple <int, int, int, int, int, int>)recv_req.GetValue(); arg1_values [status.Source] = value.Item1; arg2_values [status.Source] = value.Item2; arg3_values [status.Source] = value.Item3; arg4_values [status.Source] = value.Item4; arg5_values [status.Source] = value.Item5; arg6_values [status.Source] = value.Item6; } IGather <int> arg1 = Gather <int> .create(channel, arg1_values); IReduce <int> arg2 = Reduce <int> .create(channel, arg2_values, sum, 0); IScan <int> arg3 = Scan <int> .create(channel, arg3_values, sum, 0); IGather <int> arg4 = Gather <int> .create(channel, arg4_values); IReduce <int> arg5 = Reduce <int> .create(channel, arg5_values, sum, 0); IScan <int> arg6 = Scan <int> .create(channel, arg6_values, sum, 0); int result = service.some_method_4(arg1, arg2, arg3, arg4, arg5, arg6); int[] broadcast_result = new int[channel.RemoteSize]; for (int i = 0; i < broadcast_result.Length; i++) { broadcast_result [i] = result; } returnResult(broadcast_result, OPERATION_4); }
/// <summary> /// The select units function. /// This function is used for unit selection /// </summary> private void SelectUnits() { if (Input.GetKeyDown(KeyCode.Mouse0)) { this.ClearSelectedUnits(); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray.origin, ray.direction, out hit)) { if (hit.transform.GetComponent(typeof(IGather))) { this.theUnit = (IGather)hit.transform.GetComponent(typeof(IGather)); } } } }
void handleOperation1(IList <MPI.Request> reqList_complete) { int[] arg1_values = new int[channel.RemoteSize]; int[] arg2_values = new int[channel.RemoteSize]; int[] arg3_values = new int[channel.RemoteSize]; int[] arg4_values = new int[channel.RemoteSize]; int[] arg5_values = new int[channel.RemoteSize]; int[] arg6_values = new int[channel.RemoteSize]; foreach (MPI.Request req in reqList_complete) { MPI.ReceiveRequest recv_req = (MPI.ReceiveRequest)req; MPI.CompletedStatus status = recv_req.Test(); Tuple <int, int, int, int, int, int> value = (Tuple <int, int, int, int, int, int>)recv_req.GetValue(); arg1_values [status.Source] = value.Item1; arg2_values [status.Source] = value.Item2; arg3_values [status.Source] = value.Item3; arg4_values [status.Source] = value.Item4; arg5_values [status.Source] = value.Item5; arg6_values [status.Source] = value.Item6; } IGather <int> arg1 = Gather <int> .create(channel, arg1_values); IReduce <int> arg2 = Reduce <int> .create(channel, arg2_values, sum, 0); IScan <int> arg3 = Scan <int> .create(channel, arg3_values, sum, 0); IGather <int> arg4 = Gather <int> .create(channel, arg4_values); IReduce <int> arg5 = Reduce <int> .create(channel, arg5_values, sum, 0); IScan <int> arg6 = Scan <int> .create(channel, arg6_values, sum, 0); service.some_method_1(arg1, arg2, arg3, arg4, arg5, arg6); }
/// <summary> /// The clear selected units function. /// This clears the list of selected units and the current selected unit /// </summary> private void ClearSelectedUnits() { this.Units.Clear(); this.theUnit = null; this.theclickedobject = null; }
public IScatter <int> some_method_7(IGather <int> arg1, IReduce <int> arg2, IScan <int> arg3, IGather <int> arg4, IReduce <int> arg5, IScan <int> arg6) { throw new NotImplementedException(); }