1: <?php
2:
3: namespace Budabot\User\Modules;
4:
5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
23: class AlienArmorController {
24:
25:
26: public $text;
27:
28:
29: public $itemsController;
30:
31: 32: 33: 34:
35: public function aiarmorListCommand($message, $channel, $sender, $sendto, $args) {
36: $list = "Please choose from the following which armor to view information on:\n\n";
37: $list .= "<highlight>Normal Armor:<end>\n" . $this->text->makeChatcmd("Strong Armor", "/tell <myname> aiarmor Strong");
38: $list .= "\n" . $this->text->makeChatcmd("Supple Armor", "/tell <myname> aiarmor Supple");
39: $list .= "\n" . $this->text->makeChatcmd("Enduring Armor", "/tell <myname> aiarmor Enduring");
40: $list .= "\n" . $this->text->makeChatcmd("Observant Armor", "/tell <myname> aiarmor Observant");
41: $list .= "\n" . $this->text->makeChatcmd("Arithmetic Armor", "/tell <myname> aiarmor Arithmetic");
42: $list .= "\n" . $this->text->makeChatcmd("Spiritual Armor", "/tell <myname> aiarmor Spiritual");
43: $list .= "\n\n<highlight>Combined Armor:<end>\n" . $this->text->makeChatcmd("Combined Commando's Armor", "/tell <myname> aiarmor cc");
44: $list .= "\n" . $this->text->makeChatcmd("Combined Mercenary's Armor", "/tell <myname> aiarmor cm");
45: $list .= "\n" . $this->text->makeChatcmd("Combined Officer's", "/tell <myname> aiarmor co");
46: $list .= "\n" . $this->text->makeChatcmd("Combined Paramedic's Armor", "/tell <myname> aiarmor cp");
47: $list .= "\n" . $this->text->makeChatcmd("Combined Scout's Armor", "/tell <myname> aiarmor cs");
48: $list .= "\n" . $this->text->makeChatcmd("Combined Sharpshooter's Armor", "/tell <myname> aiarmor css");
49: $msg = $this->text->makeBlob("Alien Armor List", $list);
50: $sendto->reply($msg);
51: }
52:
53: 54: 55: 56: 57: 58: 59: 60:
61: public function aiarmorNormalCommand($message, $channel, $sender, $sendto, $args) {
62: list($armortype, $ql) = $this->extractArgs($args);
63: $armortype = ucfirst($armortype);
64: $misc_ql = floor($ql * 0.8);
65:
66: $list = "Note: All tradeskill processes are based on the lowest QL items usable.\n\n";
67: $list .= "<header2>You need the following items to build $armortype Armor:<end>\n";
68: $list .= "- Kyr'Ozch Viralbots\n";
69: $list .= "- Kyr'Ozch Atomic Re-Structulazing Tool\n";
70: $list .= "- Solid Clump of Kyr'Ozch Biomaterial\n";
71: $list .= "- Arithmetic/Strong/Enduring/Spiritual/Observant/Supple Viralbots\n\n";
72:
73: $list .= "<header2>Step 1<end>\n";
74: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Kyr'Ozch Viralbots", $misc_ql);
75: $list .= " (<highlight>Drops from Alien City Generals<end>)\n";
76: $list .= "<tab><tab>+\n";
77: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Kyr'Ozch Atomic Re-Structuralizing Tool", 100);
78: $list .= " (<highlight>Drops from every Alien<end>)\n";
79: $list .= "<tab><tab>=\n";
80: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Memory-Wiped Kyr'Ozch Viralbots", $misc_ql) . "\n";
81: $list .= "<highlight>Required Skills:<end>\n";
82: $list .= "- ".ceil($misc_ql * 4.5)." Computer Literacy\n";
83: $list .= "- ".ceil($misc_ql * 4.5)." Nano Programming\n\n";
84:
85: $list .= "<header2>Step 2<end>\n";
86: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Nano Programming Interface", 1);
87: $list .= " (<highlight>Can be bought in General Shops<end>)\n";
88: $list .= "<tab><tab>+\n";
89: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Memory-Wiped Kyr'Ozch Viralbots", $misc_ql) . "\n";
90: $list .= "<tab><tab>=\n";
91: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Formatted Kyr'Ozch Viralbots", $misc_ql) . "\n";
92: $list .= "<highlight>Required Skills:<end>\n";
93: $list .= "- ".ceil($misc_ql * 4.5)." Computer Literacy\n";
94: $list .= "- ".ceil($misc_ql * 6)." Nano Programming\n\n";
95:
96: $list .= "<header2>Step 3<end>\n";
97: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Kyr'Ozch Structural Analyzer", 100) . "\n";
98: $list .= "<tab><tab>+\n";
99: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Solid Clump of Kyr'Ozch Bio-Material", $ql) . " QL$ql";
100: $list .= " (<highlight>Drops from every Alien<end>)\n";
101: $list .= "<tab><tab>=\n";
102: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Mutated Kyr'Ozch Bio-Material", $ql) . " QL$ql";
103: $list .= "\n\nor\n\n<tab>" . $this->itemsController->getItemAndIcon("Pristine Kyr'Ozch Bio-Material", $ql) . " QL$ql\n";
104: $list .= "<highlight>Required Skills:<end>\n";
105: $list .= "- ".ceil($ql * 4.5)." Chemistry (Both require the same amount)\n\n";
106:
107: $list .= "<header2>Step 4<end>\n";
108: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Mutated Kyr'Ozch Bio-Material", $ql) . " QL$ql";
109: $list .= "\n\nor\n\n<tab>" . $this->itemsController->getItemAndIcon("Pristine Kyr'Ozch Bio-Material", $ql) . " QL$ql\n";
110: $list .= "<tab><tab>+\n";
111: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Uncle Bazzit's Generic Nano-Solvent", 100);
112: $list .= " (<highlight>Can be bought in Bazzit Shop in MMD<end>)\n";
113: $list .= "<tab><tab>=\n";
114: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Generic Kyr'Ozch DNA-Soup", $ql) . "\n";
115: $list .= "<highlight>Required Skills:<end>\n";
116: $list .= "- ".ceil($ql * 4.5)." Chemistry(for Pristine)\n";
117: $list .= "- ".ceil($ql * 7)." Chemistry(for Mutated)\n\n";
118:
119: $list .= "<header2>Step 5<end>\n";
120: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Generic Kyr'Ozch DNA-Soup", $ql) . "\n";
121: $list .= "<tab><tab>+\n";
122: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Essential Human DNA", 100);
123: $list .= " (<highlight>Can be bought in Bazzit Shop in MMD<end>)\n";
124: $list .= "<tab><tab>=\n";
125: $list .= "<tab>" . $this->itemsController->getItemAndIcon("DNA Cocktail", $ql) . "\n";
126: $list .= "<highlight>Required Skills:<end>\n";
127: $list .= "- ".ceil($ql * 6)." Pharma Tech\n\n";
128:
129: $list .= "<header2>Step 6<end>\n";
130: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Formatted Kyr'Ozch Viralbots", $misc_ql) . "\n";
131: $list .= "<tab><tab>+\n";
132: $list .= "<tab>" . $this->itemsController->getItemAndIcon("DNA Cocktail", $ql) . "\n";
133: $list .= "<tab><tab>=\n";
134: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Kyr'Ozch Formatted Viralbot Solution", $ql) . "\n";
135: $list .= "<highlight>Required Skills:<end>\n";
136: $list .= "- ".ceil($ql * 6)." Pharma Tech\n\n";
137:
138: $list .= "<header2>Step 7<end>\n";
139: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Kyr'Ozch Formatted Viralbot Solution", $ql) . "\n";
140: $list .= "<tab><tab>+\n";
141: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Basic Fashion Vest", 1) . " (<highlight>Can be obtained by the Basic Armor Quest<end>)\n";
142: $list .= "<tab><tab>=\n";
143: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Formatted Viralbot Vest", $ql) . "\n\n";
144:
145: $list .= "<header2>Step 8<end>\n";
146:
147: $vb_ql = floor($ql * 0.8);
148: switch ($armortype) {
149: case "Arithmetic":
150: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Arithmetic Lead Viralbots", $vb_ql) . " QL$vb_ql";
151: $list .= " (<highlight>Rare Drop off Alien City Generals<end>)\n";
152: break;
153: case "Supple":
154: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Supple Lead Viralbots", $vb_ql) . " QL$vb_ql";
155: $list .= " (<highlight>Rare Drop off Alien City Generals<end>)\n";
156: break;
157: case "Enduring":
158: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Enduring Lead Viralbots", $vb_ql) . " QL$vb_ql";
159: $list .= " (<highlight>Rare Drop off Alien City Generals<end>)\n";
160: break;
161: case "Observant":
162: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Observant Lead Viralbots", $vb_ql) . " QL$vb_ql";
163: $list .= " (<highlight>Rare Drop off Alien City Generals<end>)\n";
164: break;
165: case "Strong":
166: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Strong Lead Viralbots", $vb_ql) . " QL$vb_ql";
167: $list .= " (<highlight>Rare Drop off Alien City Generals<end>)\n";
168: break;
169: case "Spiritual":
170: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Spiritual Lead Viralbots", $vb_ql) . " QL$vb_ql";
171: $list .= " (<highlight>Rare Drop off Alien City Generals<end>)\n";
172: break;
173: }
174: $list .= "<tab><tab>+\n";
175: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Formatted Viralbot Vest", $ql) . "\n";
176: $list .= "<tab><tab>=\n";
177: switch ($armortype) {
178: case "Arithmetic":
179: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Arithmetic Body Armor", $ql) . " QL$ql\n";
180: break;
181: case "Supple":
182: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Supple Body Armor", $ql) . " QL$ql\n";
183: break;
184: case "Enduring":
185: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Enduring Body Armor", $ql) . " QL$ql\n";
186: break;
187: case "Observant":
188: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Observant Body Armor", $ql) . " QL$ql\n";
189: break;
190: case "Strong":
191: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Strong Body Armor", $ql) . " QL$ql\n";
192: break;
193: case "Spiritual":
194: $list .= "<tab>" . $this->itemsController->getItemAndIcon("Spiritual Body Armor", $ql) . " QL$ql\n";
195: break;
196: }
197: $list .= "<highlight>Required Skills:<end>\n";
198: $list .= "- ".floor($ql * 6)." Psychology\n\n";
199:
200: $msg = $this->text->makeBlob("Building process for $ql $armortype", $list);
201: $sendto->reply($msg);
202: }
203:
204: 205: 206: 207: 208: 209: 210: 211:
212: public function aiarmorCombinedCommand($message, $channel, $sender, $sendto, $args) {
213: list($armortype, $ql) = $this->extractArgs($args);
214: $trg_ql = $ql;
215: $src_ql = floor($trg_ql * 0.8);
216:
217: switch ($armortype) {
218: case 'cc':
219: $name_armor_result = "Combined Commando's Jacket";
220:
221: $name_armor_src = "Strong Body Armor";
222: $nameSrc = "strong";
223:
224: $name_armor_trg = "Supple Body Armor";
225: $nameTarget = "supple";
226: break;
227:
228: case 'cm':
229: $name_armor_result = "Combined Mercenary's Jacket";
230:
231: $name_armor_src = "Strong Body Armor";
232: $nameSrc = "strong";
233:
234: $name_armor_trg = "Enduring Body Armor";
235: $nameTarget = "enduring";
236: break;
237:
238: case 'co':
239: $name_armor_result = "Combined Officer's Jacket";
240:
241: $name_armor_src = "Spiritual Body Armor";
242: $nameSrc = "spiritual";
243:
244: $name_armor_trg = "Arithmetic Body Armor";
245: $nameTarget = "arithmetic";
246: break;
247:
248: case 'cp':
249: $name_armor_result = "Combined Paramedic's Jacket";
250:
251: $name_armor_src = "Spiritual Body Armor";
252: $nameSrc = "spiritual";
253:
254: $name_armor_trg = "Enduring Body Armor";
255: $nameTarget = "enduring";
256: break;
257:
258: case 'cs':
259: $name_armor_result = "Combined Scout's Jacket";
260:
261: $name_armor_src = "Observant Body Armor";
262: $nameSrc = "observant";
263:
264: $name_armor_trg = "Arithmetic Body Armor";
265: $nameTarget = "arithmetic";
266: break;
267:
268: case 'css':
269: case 'ss':
270: $name_armor_result = "Combined Sharpshooter's Jacket";
271:
272: $name_armor_src = "Observant Body Armor";
273: $nameSrc = "observant";
274:
275: $name_armor_trg = "Supple Body Armor";
276: $nameTarget = "supple";
277: break;
278: }
279:
280: $list = "<header2>Result<end>\n";
281: $list .= $this->itemsController->getItemAndIcon($name_armor_result, $ql) . " QL$ql\n\n";
282:
283: $list .= "<header2>Source Armor<end>\n";
284: $list .= $this->itemsController->getItemAndIcon($name_armor_src, $src_ql) . " QL$src_ql";
285: $list .= " (" . $this->text->makeChatcmd("Tradeskill process for this item", "/tell <myname> aiarmor $nameSrc $src_ql") . ")\n\n";
286:
287: $list .= "<header2>Target Armor<end>\n";
288: $list .= $this->itemsController->getItemAndIcon($name_armor_trg, $trg_ql) . " QL$trg_ql";
289: $list .= " (" . $this->text->makeChatcmd("Tradeskill process for this item", "/tell <myname> aiarmor $nameTarget $trg_ql") . ")";
290: $msg = $this->text->makeBlob("Building process for $ql $name_armor_result", $list);
291: $sendto->reply($msg);
292: }
293:
294: 295: 296:
297: private function extractArgs($args) {
298: $armortype = '';
299: $ql = 300;
300:
301: for ($i = 1; $i < count($args); $i++) {
302: $value = $args[$i];
303: if (is_numeric($value)) {
304: if ($value >= 1 && $value <= 300) {
305: $ql = intval($value);
306: }
307: } else {
308: $armortype = strtolower($value);
309: }
310: }
311: return array ($armortype, $ql);
312: }
313: }
314: