// Function from file: ninjaDrainAct.dm public override dynamic ninjadrain_act(Obj_Item_Clothing_Suit_Space_SpaceNinja S = null, Ent_Static H = null, Obj_Item_Clothing_Gloves_SpaceNinja G = null) { dynamic _default = null; if (!(S != null) || !(H != null) || !(G != null)) { return("INVALID"); } _default = 0; if (Lang13.Bool(this.charge)) { if (G.candrain && GlobalFuncs.do_after(H, 30, null, this)) { _default = this.charge; if (Convert.ToDouble(S.cell.charge + this.charge) > (S.cell.maxcharge ?? 0)) { S.cell.charge = S.cell.maxcharge; } else { S.cell.charge += this.charge; } this.charge = 0; this.corrupt(); this.updateicon(); } } return(_default); }
// Function from file: gloves.dm public override dynamic Touch(Ent_Static A = null, bool proximity = false) { Ent_Static H = null; Obj_Item_Clothing_Suit_Space_SpaceNinja suit = null; dynamic drained = null; if (!this.candrain || this.draining) { return(0); } if (!(this.loc is Mob_Living_Carbon_Human)) { return(0); } H = this.loc; suit = ((dynamic)H).wear_suit; if (!(suit is Obj_Item_Clothing_Suit_Space_SpaceNinja)) { return(0); } if (A is Tile) { return(0); } if (!proximity) { return(0); } A.add_fingerprint(H); this.draining = true; drained = A.ninjadrain_act(suit, H, this); this.draining = false; if (Lang13.Bool(Lang13.IsNumber(drained))) { if (Lang13.Bool(drained)) { ((dynamic)H).WriteMsg(new Txt("<span class='notice'>Gained <B>").item(drained).str("</B> energy from ").the(A).item().str(".</span>").ToString()); } else { ((dynamic)H).WriteMsg(new Txt("<span class='danger'>").The(A).item().str(" has run dry of power, you must find another source!</span>").ToString()); } } else { drained = 0; } return(drained); }
// Function from file: ninjaDrainAct.dm public override dynamic ninjadrain_act(Obj_Item_Clothing_Suit_Space_SpaceNinja S = null, Ent_Static H = null, Obj_Item_Clothing_Gloves_SpaceNinja G = null) { dynamic _default = null; bool maxcapacity = false; double drain = 0; EffectSystem_SparkSpread spark_system = null; if (!(S != null) || !(H != null) || !(G != null)) { return("INVALID"); } maxcapacity = false; drain = 0; _default = 0; if (this.charge != 0) { spark_system = new EffectSystem_SparkSpread(); spark_system.set_up(5, 0, this.loc); while (G.candrain && this.charge > 0 && !maxcapacity) { drain = Rand13.Int(G.mindrain, G.maxdrain); if (this.charge < drain) { drain = this.charge; } if (Convert.ToDouble(S.cell.charge + drain) > (S.cell.maxcharge ?? 0)) { drain = (S.cell.maxcharge ?? 0) - Convert.ToDouble(S.cell.charge); maxcapacity = true; } if (GlobalFuncs.do_after(H, 10, null, this)) { spark_system.start(); GlobalFuncs.playsound(this.loc, "sparks", 50, 1); this.charge -= drain; S.cell.charge += drain; _default += drain; } else { break; } } } return(_default); }
// Function from file: ninjaDrainAct.dm public override dynamic ninjadrain_act(Obj_Item_Clothing_Suit_Space_SpaceNinja S = null, Ent_Static H = null, Obj_Item_Clothing_Gloves_SpaceNinja G = null) { dynamic _default = null; dynamic location = null; Mob_Living_Silicon_Ai AI = null; Tech current_data = null; Tech analyzing_data = null; if (!(S != null) || !(H != null) || !(G != null)) { return("INVALID"); } _default = "RDHACKFAIL"; ((dynamic)H).WriteMsg(new Txt("<span class='notice'>Hacking ").the(this).item().str("...</span>").ToString()); Task13.Schedule(0, (Task13.Closure)(() => { location = GlobalFuncs.get_turf(H); foreach (dynamic _a in Lang13.Enumerate(GlobalVars.player_list, typeof(Mob_Living_Silicon_Ai))) { AI = _a; AI.WriteMsg("<span class='userdanger'>Network Alert: Hacking attempt detected" + (Lang13.Bool(location) ? " in " + location : ". Unable to pinpoint location") + "</span>."); } return; })); if (this.files != null && this.files.known_tech.len != 0) { foreach (dynamic _c in Lang13.Enumerate(S.stored_research, typeof(Tech))) { current_data = _c; ((dynamic)H).WriteMsg(new Txt("<span class='notice'>Checking ").the(current_data.name).item().str(" database.</span>").ToString()); if (GlobalFuncs.do_after(H, S.s_delay, null, this) && G.candrain && this != null) { foreach (dynamic _b in Lang13.Enumerate(this.files.known_tech, typeof(Tech))) { analyzing_data = _b; if (current_data.id == analyzing_data.id) { if (analyzing_data.level > current_data.level) { ((dynamic)H).WriteMsg("<span class='notice'>Database:</span> <b>UPDATED</b>."); current_data.level = analyzing_data.level; _default = "RDHACK"; } break; } } } else { break; } } } ((dynamic)H).WriteMsg("<span class='notice'>Data analyzed. Process finished.</span>"); return(_default); }
// Function from file: ninjaDrainAct.dm public override dynamic ninjadrain_act(Obj_Item_Clothing_Suit_Space_SpaceNinja S = null, Ent_Static H = null, Obj_Item_Clothing_Gloves_SpaceNinja G = null) { dynamic _default = null; bool maxcapacity = false; int drain = 0; Powernet PN = null; int drained = 0; Obj_Machinery_Power_Terminal T = null; Obj_Machinery_Power AP = null; if (!(S != null) || !(H != null) || !(G != null)) { return("INVALID"); } maxcapacity = false; drain = 0; _default = 0; PN = this.powernet; while (G.candrain && !maxcapacity && this != null) { drain = Num13.Floor(Rand13.Int(G.mindrain, G.maxdrain) / 2); drained = 0; if (PN != null && GlobalFuncs.do_after(H, 10, null, this)) { drained = Num13.MinInt(drain, ((int)(PN.avail))); PN.load += drained; if (drained < drain) { foreach (dynamic _a in Lang13.Enumerate(PN.nodes, typeof(Obj_Machinery_Power_Terminal))) { T = _a; if (T.master is Obj_Machinery_Power_Apc) { AP = T.master; if (Lang13.Bool(((dynamic)AP).operating) && Lang13.Bool(((dynamic)AP).cell) && Convert.ToDouble(((dynamic)AP).cell.charge) > 0) { ((dynamic)AP).cell.charge = Num13.MaxInt(0, Convert.ToInt32(((dynamic)AP).cell.charge - 5)); drained += 5; } } } } } else { break; } S.cell.charge += drained; if (Convert.ToDouble(S.cell.charge) > (S.cell.maxcharge ?? 0)) { _default += drained - Convert.ToDouble(S.cell.charge - S.cell.maxcharge); S.cell.charge = S.cell.maxcharge; maxcapacity = true; } else { _default += drained; } S.spark_system.start(); } return(_default); }