changeset 11718 | f699978eae19 |
parent 11717 | f35139700d22 |
child 11719 | 9fea4e2dceaa |
11717:f35139700d22 | 11718:f699978eae19 |
---|---|
184 xOffset = 40 |
184 xOffset = 40 |
185 |
185 |
186 if i == 0 then |
186 if i == 0 then |
187 yOffset = 40 |
187 yOffset = 40 |
188 tCol = 0xffba00ff |
188 tCol = 0xffba00ff |
189 tValue = 30--TimeLeft |
189 tValue = 30 |
190 elseif i == 1 then |
190 elseif i == 1 then |
191 zoomL = 1.1 |
191 zoomL = 1.1 |
192 xOffset = 45 |
192 xOffset = 45 |
193 yOffset = 70 |
193 yOffset = 70 |
194 tCol = 0x00ff00ff |
194 tCol = 0x00ff00ff |
196 elseif i == 2 then |
196 elseif i == 2 then |
197 zoomL = 1.1 |
197 zoomL = 1.1 |
198 xOffset = 60 + 35 |
198 xOffset = 60 + 35 |
199 yOffset = 70 |
199 yOffset = 70 |
200 tCol = 0xa800ffff |
200 tCol = 0xa800ffff |
201 tValue = 10--shieldHealth - 80 |
201 tValue = 10 |
202 end |
202 end |
203 |
203 |
204 DeleteVisualGear(vTag[i]) |
204 DeleteVisualGear(vTag[i]) |
205 vTag[i] = AddVisualGear(0, 0, vgtHealthTag, 0, false) |
205 vTag[i] = AddVisualGear(0, 0, vgtHealthTag, 0, false) |
206 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(vTag[i]) |
206 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(vTag[i]) |
264 end |
264 end |
265 |
265 |
266 function HandleBorderEffects() |
266 function HandleBorderEffects() |
267 |
267 |
268 effectTimer = effectTimer + 1 |
268 effectTimer = effectTimer + 1 |
269 if effectTimer > 15 then --25 |
269 if effectTimer > 15 then |
270 effectTimer = 1 |
270 effectTimer = 1 |
271 for i = 1, #wX do |
271 for i = 1, #wX do |
272 BorderSpark(wX[i],wY[i],wWidth[i],wHeight[i], wCol[i]) |
272 BorderSpark(wX[i],wY[i],wWidth[i],wHeight[i], wCol[i]) |
273 end |
273 end |
274 end |
274 end |
280 --- |
280 --- |
281 |
281 |
282 function gearCanBeDeflected(gear) |
282 function gearCanBeDeflected(gear) |
283 |
283 |
284 if (GetGearType(gear) == gtShell) or |
284 if (GetGearType(gear) == gtShell) or |
285 --(GetGearType(gear) == gtBee) or |
|
286 (GetGearType(gear) == gtGrenade) or |
285 (GetGearType(gear) == gtGrenade) or |
287 (GetGearType(gear) == gtAirBomb) or |
286 (GetGearType(gear) == gtAirBomb) or |
288 --(GetGearType(gear) == gtRCPlane) or |
|
289 --(GetGearType(gear) == gtRope) or |
|
290 (GetGearType(gear) == gtClusterBomb) or |
287 (GetGearType(gear) == gtClusterBomb) or |
291 (GetGearType(gear) == gtCluster) or |
288 (GetGearType(gear) == gtCluster) or |
292 (GetGearType(gear) == gtGasBomb) or |
289 (GetGearType(gear) == gtGasBomb) or |
293 --(GetGearType(gear) == gtSeduction) or |
290 (GetGearType(gear) == gtMine) or |
294 (GetGearType(gear) == gtMine) or ------- |
|
295 (GetGearType(gear) == gtMortar) or |
291 (GetGearType(gear) == gtMortar) or |
296 (GetGearType(gear) == gtHellishBomb) or |
292 (GetGearType(gear) == gtHellishBomb) or |
297 (GetGearType(gear) == gtWatermelon) or |
293 (GetGearType(gear) == gtWatermelon) or |
298 (GetGearType(gear) == gtMelonPiece) or |
294 (GetGearType(gear) == gtMelonPiece) or |
299 (GetGearType(gear) == gtEgg) or |
295 (GetGearType(gear) == gtEgg) or |
300 (GetGearType(gear) == gtDrill) or |
296 (GetGearType(gear) == gtDrill) or |
301 (GetGearType(gear) == gtBall) or |
297 (GetGearType(gear) == gtBall) or |
302 (GetGearType(gear) == gtExplosives) or ------ |
298 (GetGearType(gear) == gtExplosives) or |
303 (GetGearType(gear) == gtFlame) or |
299 (GetGearType(gear) == gtFlame) or |
304 (GetGearType(gear) == gtPortal) or |
300 (GetGearType(gear) == gtPortal) or |
305 (GetGearType(gear) == gtDynamite) or |
301 (GetGearType(gear) == gtDynamite) or |
306 (GetGearType(gear) == gtSMine) or |
302 (GetGearType(gear) == gtSMine) or |
307 --(GetGearType(gear) == gtKamikaze) or |
|
308 --(GetGearType(gear) == gtRCPlane) or |
|
309 --(GetGearType(gear) == gtCake) or |
|
310 --(GetGearType(gear) == gtHedgehog) or ------ |
|
311 (GetGearType(gear) == gtKnife) or |
303 (GetGearType(gear) == gtKnife) or |
312 (GetGearType(gear) == gtJetpack) or -- test this and birdy plz |
304 (GetGearType(gear) == gtJetpack) or -- test this and birdy plz |
313 (GetGearType(gear) == gtBirdy) or -- test this and birdy plz |
305 (GetGearType(gear) == gtBirdy) or -- test this and birdy plz |
314 (GetGearType(gear) == gtSnowball) or |
306 (GetGearType(gear) == gtSnowball) or |
315 (GetGearType(gear) == gtMolotov) |
307 (GetGearType(gear) == gtMolotov) |
346 dmg = 20 |
338 dmg = 20 |
347 |
339 |
348 elseif (GetGearType(gear) == gtFlame) or |
340 elseif (GetGearType(gear) == gtFlame) or |
349 (GetGearType(gear) == gtPortal) or |
341 (GetGearType(gear) == gtPortal) or |
350 (GetGearType(gear) == gtDynamite) |
342 (GetGearType(gear) == gtDynamite) |
351 --(GetGearType(gear) == gtKamikaze) or |
|
352 --(GetGearType(gear) == gtRCPlane) or |
|
353 |
|
354 --(GetGearType(gear) == gtCake) |
|
355 then |
343 then |
356 dmg = 0 |
344 dmg = 0 |
357 |
345 |
358 elseif (GetGearType(gear) == gtBall) then |
346 elseif (GetGearType(gear) == gtBall) then |
359 dmg = 1 |
347 dmg = 1 |
370 |
358 |
371 dmg = getThreatDamage(gear) |
359 dmg = getThreatDamage(gear) |
372 setGearValue(gear,"damage",dmg) |
360 setGearValue(gear,"damage",dmg) |
373 setGearValue(gear,"deflects",0) |
361 setGearValue(gear,"deflects",0) |
374 |
362 |
375 if (CurrentHedgehog ~= nil) then --and (gameStarted == true) then |
363 if (CurrentHedgehog ~= nil) then |
376 setGearValue(gear,"owner",GetHogClan(CurrentHedgehog)) -- NEW NEEDS CHANGE? |
364 setGearValue(gear,"owner",GetHogClan(CurrentHedgehog)) -- NEW NEEDS CHANGE? |
377 else |
365 else |
378 setGearValue(gear,"owner",10) -- nil |
366 setGearValue(gear,"owner",10) |
379 end |
367 end |
380 |
368 |
381 end |
369 end |
382 |
370 |
383 function AddStruc(pX,pY, pType, pClan) |
371 function AddStruc(pX,pY, pType, pClan) |
405 |
393 |
406 |
394 |
407 if pType == loc("Reflector Shield") then |
395 if pType == loc("Reflector Shield") then |
408 table.insert(strucHealth,255) |
396 table.insert(strucHealth,255) |
409 |
397 |
410 --SetVisualGearValues(madness, g1, g2, 0, 0, g5, frameID, g7, visualSprite, g9, g10 ) |
|
411 --SetState(tempG, bor(GetState(tempG),gstInvisible) ) |
|
412 --table.insert(strucAltDisplay, madness) |
|
413 |
|
414 else |
398 else |
415 table.insert(strucHealth,1) |
399 table.insert(strucHealth,1) |
416 --table.insert(strucAltDisplay, 1) |
|
417 end |
400 end |
418 |
401 |
419 table.insert(strucCirc,tempCirc) |
402 table.insert(strucCirc,tempCirc) |
420 |
403 |
421 table.insert(strucCircType, 1) |
404 table.insert(strucCircType, 1) |
423 table.insert(strucCircCol,colorRed) |
406 table.insert(strucCircCol,colorRed) |
424 table.insert(strucCircRadius,1000) |
407 table.insert(strucCircRadius,1000) |
425 frameID = 7 |
408 frameID = 7 |
426 elseif pType == loc("Healing Station") then |
409 elseif pType == loc("Healing Station") then |
427 table.insert(strucCircCol,0xFF00FF00) |
410 table.insert(strucCircCol,0xFF00FF00) |
428 --table.insert(strucCircCol,colorGreen) |
|
429 table.insert(strucCircRadius,500) |
411 table.insert(strucCircRadius,500) |
430 frameID = 3 |
412 frameID = 3 |
431 elseif pType == loc("Respawner") then |
413 elseif pType == loc("Respawner") then |
432 table.insert(strucCircCol,0xFF00FF00) |
414 table.insert(strucCircCol,0xFF00FF00) |
433 --table.insert(strucCircCol,0xFF00FFFF) |
|
434 table.insert(strucCircRadius,75) |
415 table.insert(strucCircRadius,75) |
435 runOnHogs(EnableHogResurrectionForThisClan) |
416 runOnHogs(EnableHogResurrectionForThisClan) |
436 frameID = 1 |
417 frameID = 1 |
437 elseif pType == loc("Teleportation Node") then |
418 elseif pType == loc("Teleportation Node") then |
438 table.insert(strucCircCol,0x0000FFFF) |
419 table.insert(strucCircCol,0x0000FFFF) |
467 |
448 |
468 SetVisualGearValues(madness, g1, g2, 0, 0, g5, frameID, g7, visualSprite, g9, g10 ) |
449 SetVisualGearValues(madness, g1, g2, 0, 0, g5, frameID, g7, visualSprite, g9, g10 ) |
469 SetState(tempG, bor(GetState(tempG),gstInvisible) ) |
450 SetState(tempG, bor(GetState(tempG),gstInvisible) ) |
470 table.insert(strucAltDisplay, madness) |
451 table.insert(strucAltDisplay, madness) |
471 |
452 |
472 -- may be needed for non gear-based structures |
|
473 --table.insert(strucX, GetX(tempG)) |
|
474 --table.insert(strucY, GetY(tempG)) |
|
475 |
|
476 end |
453 end |
477 |
454 |
478 -- this is basically onStructureDelete |
455 -- this is basically onStructureDelete |
479 -- we may need to expand it for non-gear structures later |
456 -- we may need to expand it for non-gear structures later |
480 function CheckGearForStructureLink(gear) |
457 function CheckGearForStructureLink(gear) |
580 dist = GetDistFromGearToXY(CurrentHedgehog,GetX(strucGear[i]), GetY(strucGear[i])) |
557 dist = GetDistFromGearToXY(CurrentHedgehog,GetX(strucGear[i]), GetY(strucGear[i])) |
581 if strucCircType[i] == 0 then |
558 if strucCircType[i] == 0 then |
582 NR = strucCircRadius[i] |
559 NR = strucCircRadius[i] |
583 else |
560 else |
584 NR = (48/100*strucCircRadius[i])/2 |
561 NR = (48/100*strucCircRadius[i])/2 |
585 --NR = div((div(48,100) * strucCircRadius[tempID]),2) |
|
586 end |
562 end |
587 if dist <= NR*NR then |
563 if dist <= NR*NR then |
588 teleportOriginSuccessful = true |
564 teleportOriginSuccessful = true |
589 end |
565 end |
590 |
566 |
591 dist = GetDistFromXYtoXY(tX,tY,GetX(strucGear[i]), GetY(strucGear[i])) |
567 dist = GetDistFromXYtoXY(tX,tY,GetX(strucGear[i]), GetY(strucGear[i])) |
592 if strucCircType[i] == 0 then |
568 if strucCircType[i] == 0 then |
593 NR = strucCircRadius[i] |
569 NR = strucCircRadius[i] |
594 else |
570 else |
595 NR = (48/100*strucCircRadius[i])/2 |
571 NR = (48/100*strucCircRadius[i])/2 |
596 --NR = div((div(48,100) * strucCircRadius[tempID]),2) |
|
597 end |
572 end |
598 if dist <= NR*NR then |
573 if dist <= NR*NR then |
599 teleportDestinationSuccessful = true |
574 teleportDestinationSuccessful = true |
600 end |
575 end |
601 |
576 |
612 end |
587 end |
613 |
588 |
614 --Check for proximity of gears to structures, and make structures behave accordingly |
589 --Check for proximity of gears to structures, and make structures behave accordingly |
615 function CheckProximity(gear) |
590 function CheckProximity(gear) |
616 |
591 |
617 --if isAStructureEffectingGear(gear) then |
592 dist = GetDistFromGearToXY(gear, GetX(strucGear[tempID]), GetY(strucGear[tempID])) |
618 |
593 |
619 dist = GetDistFromGearToXY(gear, GetX(strucGear[tempID]), GetY(strucGear[tempID])) |
594 -- calculate my real radius if I am an aura |
620 |
595 if strucCircType[tempID] == 0 then |
621 -- calculate my real radius if I am an aura |
596 NR = strucCircRadius[tempID] |
622 if strucCircType[tempID] == 0 then |
597 else |
623 NR = strucCircRadius[tempID] |
598 NR = (48/100*strucCircRadius[tempID])/2 |
624 else |
599 end |
625 NR = (48/100*strucCircRadius[tempID])/2 |
600 |
626 --NR = div((div(48,100) * strucCircRadius[tempID]),2) -- doesn't work ffff |
601 -- we're in business |
627 --NR = div((48/100*strucCircRadius[tempID]),2) -- still works |
602 if dist <= NR*NR then |
628 |
603 |
629 end |
604 |
630 |
605 -- heal clan hogs |
631 -- we're in business |
606 if strucType[tempID] == loc("Healing Station") then |
632 if dist <= NR*NR then |
607 |
633 |
608 if GetGearType(gear) == gtHedgehog then |
634 |
609 if GetHogClan(gear) == strucClan[tempID] then |
635 -- heal clan hogs |
610 |
636 if strucType[tempID] == loc("Healing Station") then |
611 hogLife = GetHealth(gear) + 1 |
637 |
612 if hogLife > 150 then |
638 if GetGearType(gear) == gtHedgehog then |
613 hogLife = 150 |
639 if GetHogClan(gear) == strucClan[tempID] then |
614 end |
640 |
615 SetHealth(gear, hogLife) |
641 hogLife = GetHealth(gear) + 1 |
616 |
642 if hogLife > 150 then |
617 -- change this to the med kit sprite health ++++s later |
643 hogLife = 150 |
618 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
619 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
|
620 SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, colorGreen ) |
|
621 |
|
622 end |
|
623 end |
|
624 |
|
625 -- explode enemy clan hogs |
|
626 elseif strucType[tempID] == loc("Bio-Filter") then |
|
627 |
|
628 if GetGearType(gear) == gtHedgehog then |
|
629 if (GetHogClan(gear) ~= strucClan[tempID]) and (GetHealth(gear) > 0) then |
|
630 AddGear(GetX(gear), GetY(gear), gtGrenade, 0, 0, 0, 1) |
|
631 end |
|
632 end |
|
633 |
|
634 -- were those weapons in your pocket, or were you just happy to see me? |
|
635 elseif strucType[tempID] == loc("Weapon Filter") then |
|
636 |
|
637 if GetGearType(gear) == gtHedgehog then |
|
638 if (GetHogClan(gear) ~= strucClan[tempID]) then |
|
639 |
|
640 for wpnIndex = 1, #atkArray do |
|
641 AddAmmo(gear, atkArray[wpnIndex][1], 0) |
|
642 end |
|
643 |
|
644 for wpnIndex = 1, #utilArray do |
|
645 AddAmmo(gear, utilArray[wpnIndex][1], 0) |
|
646 end |
|
647 |
|
648 AddAmmo(gear, amAirAttack, 100) |
|
649 AddAmmo(gear, amSwitch, 100) |
|
650 AddAmmo(gear, amSkip, 100) |
|
651 |
|
652 end |
|
653 end |
|
654 |
|
655 -- BOUNCE! POGO! POGO! POGO! POGO! |
|
656 elseif strucType[tempID] == loc("Reflector Shield") then |
|
657 |
|
658 -- add check for whose projectile it is |
|
659 if gearCanBeDeflected(gear) == true then |
|
660 |
|
661 gOwner = getGearValue(gear,"owner") |
|
662 gDeflects = getGearValue(gear,"deflects") |
|
663 gDmg = getGearValue(gear,"damage") |
|
664 |
|
665 if gDeflects >= 3 then |
|
666 DeleteGear(gear) |
|
667 AddVisualGear(GetX(gear), GetY(gear), vgtSmoke, 0, false) |
|
668 PlaySound(sndVaporize) |
|
669 elseif gOwner ~= strucClan[tempID] then |
|
670 --whether to vaporize gears or bounce them |
|
671 if gDmg ~= 0 then |
|
672 dx, dy = GetGearVelocity(gear) |
|
673 |
|
674 if (dx == 0) and (dy == 0) then |
|
675 -- static mine, explosive, etc encountered |
|
676 -- do nothing |
|
677 else |
|
678 |
|
679 --let's bounce something! |
|
680 |
|
681 dx = dx*(-1) |
|
682 dy = dy*(-1) |
|
683 SetGearVelocity(gear,dx,dy) |
|
684 setGearValue(gear,"deflects",(gDeflects+1)) |
|
685 |
|
686 AddVisualGear(GetX(gear), GetY(gear), vgtExplosion, 0, false) |
|
687 PlaySound(sndExplosion) |
|
688 |
|
689 strucHealth[tempID] = strucHealth[tempID] - gDmg |
|
690 strucCircCol[tempID] = strucCircCol[tempID] - gDmg |
|
691 |
|
692 if strucHealth[tempID] <= 0 then |
|
693 AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtExplosion, 0, false) |
|
694 DeleteGear(strucGear[tempID]) |
|
695 PlaySound(sndExplosion) |
|
696 end |
|
697 |
|
644 end |
698 end |
645 SetHealth(gear, hogLife) |
699 |
646 |
700 else |
647 -- change this to the med kit sprite health ++++s later |
|
648 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
|
649 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
|
650 SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, colorGreen ) |
|
651 |
|
652 |
|
653 end |
|
654 end |
|
655 |
|
656 -- explode enemy clan hogs |
|
657 elseif strucType[tempID] == loc("Bio-Filter") then |
|
658 |
|
659 --tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
|
660 --g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
|
661 --SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, colorRed ) |
|
662 |
|
663 if GetGearType(gear) == gtHedgehog then |
|
664 if (GetHogClan(gear) ~= strucClan[tempID]) and (GetHealth(gear) > 0) then |
|
665 AddGear(GetX(gear), GetY(gear), gtGrenade, 0, 0, 0, 1) |
|
666 end |
|
667 end |
|
668 |
|
669 -- were those weapons in your pocket, or were you just happy to see me? |
|
670 elseif strucType[tempID] == loc("Weapon Filter") then |
|
671 |
|
672 if GetGearType(gear) == gtHedgehog then |
|
673 if (GetHogClan(gear) ~= strucClan[tempID]) then |
|
674 |
|
675 for wpnIndex = 1, #atkArray do |
|
676 AddAmmo(gear, atkArray[wpnIndex][1], 0) |
|
677 end |
|
678 |
|
679 for wpnIndex = 1, #utilArray do |
|
680 AddAmmo(gear, utilArray[wpnIndex][1], 0) |
|
681 end |
|
682 |
|
683 AddAmmo(gear, amAirAttack, 100) |
|
684 AddAmmo(gear, amSwitch, 100) |
|
685 AddAmmo(gear, amSkip, 100) |
|
686 |
|
687 end |
|
688 end |
|
689 |
|
690 -- BOUNCE! POGO! POGO! POGO! POGO! |
|
691 elseif strucType[tempID] == loc("Reflector Shield") then |
|
692 |
|
693 -- add check for whose projectile it is |
|
694 if gearCanBeDeflected(gear) == true then |
|
695 |
|
696 gOwner = getGearValue(gear,"owner") |
|
697 gDeflects = getGearValue(gear,"deflects") |
|
698 gDmg = getGearValue(gear,"damage") |
|
699 |
|
700 if gDeflects >= 3 then |
|
701 DeleteGear(gear) |
701 DeleteGear(gear) |
702 AddVisualGear(GetX(gear), GetY(gear), vgtSmoke, 0, false) |
702 AddVisualGear(GetX(gear), GetY(gear), vgtSmoke, 0, false) |
703 PlaySound(sndVaporize) |
703 PlaySound(sndVaporize) |
704 elseif gOwner ~= strucClan[tempID] then |
704 end |
705 --whether to vaporize gears or bounce them |
705 end |
706 if gDmg ~= 0 then |
706 end |
707 dx, dy = GetGearVelocity(gear) |
707 |
708 |
708 --mark as within range of a teleporter node |
709 if (dx == 0) and (dy == 0) then |
709 elseif strucType[tempID] == loc("Teleportation Node") then |
710 -- static mine, explosive, etc encountered |
710 |
711 -- do nothing |
711 if GetGearType(gear) == gtHedgehog then |
712 else |
712 if GetHogClan(gear) == strucClan[tempID] then |
713 |
713 |
714 --let's bounce something! |
714 for i = 1, #sProx do |
715 |
715 if sProx[i][1] == loc("Teleportation Mode") then |
716 --if dx == 0 then |
716 sProx[i][2] = true |
717 -- bounce away eggs |
|
718 -- dx = 0.5 |
|
719 --end |
|
720 |
|
721 dx = dx*(-1) |
|
722 dy = dy*(-1) |
|
723 SetGearVelocity(gear,dx,dy) |
|
724 setGearValue(gear,"deflects",(gDeflects+1)) |
|
725 |
|
726 AddVisualGear(GetX(gear), GetY(gear), vgtExplosion, 0, false) |
|
727 PlaySound(sndExplosion) |
|
728 |
|
729 strucHealth[tempID] = strucHealth[tempID] - gDmg |
|
730 strucCircCol[tempID] = strucCircCol[tempID] - gDmg |
|
731 |
|
732 if strucHealth[tempID] <= 0 then |
|
733 AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtExplosion, 0, false) |
|
734 DeleteGear(strucGear[tempID]) |
|
735 PlaySound(sndExplosion) |
|
736 end |
|
737 |
|
738 end |
|
739 |
|
740 else |
|
741 DeleteGear(gear) |
|
742 AddVisualGear(GetX(gear), GetY(gear), vgtSmoke, 0, false) |
|
743 PlaySound(sndVaporize) |
|
744 end |
717 end |
745 end |
718 end |
719 |
|
746 end |
720 end |
747 |
721 end |
748 --mark as within range of a teleporter node |
722 |
749 elseif strucType[tempID] == loc("Teleportation Node") then |
723 -- mark as within range of construction station |
750 |
724 -- and thus allow menu access to placement modes |
751 if GetGearType(gear) == gtHedgehog then |
725 -- for girders, mines, sticky mines and barrels |
752 if GetHogClan(gear) == strucClan[tempID] then |
726 elseif strucType[tempID] == loc("Construction Station") then |
753 --tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
727 |
754 |
728 if GetGearType(gear) == gtHedgehog then |
755 for i = 1, #sProx do |
729 if GetHogClan(gear) == strucClan[tempID] then |
756 if sProx[i][1] == loc("Teleportation Mode") then |
730 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
757 sProx[i][2] = true |
731 |
758 end |
732 for i = 1, #sProx do |
733 if ((sProx[i][1] == loc("Girder Placement Mode")) |
|
734 or (sProx[i][1] == loc("Rubber Placement Mode")) |
|
735 or (sProx[i][1] == loc("Mine Placement Mode")) |
|
736 or (sProx[i][1] == loc("Sticky Mine Placement Mode")) |
|
737 or (sProx[i][1] == loc("Barrel Placement Mode"))) |
|
738 then |
|
739 sProx[i][2] = true |
|
759 end |
740 end |
760 |
|
761 end |
741 end |
742 |
|
743 |
|
762 end |
744 end |
763 |
745 end |
764 -- mark as within range of construction station |
746 |
765 -- and thus allow menu access to placement modes |
747 -- mark as within stupport station range |
766 -- for girders, mines, sticky mines and barrels |
748 -- and thus allow menu access to placement modes |
767 elseif strucType[tempID] == loc("Construction Station") then |
749 -- for weapon, utility, and med crates |
768 |
750 elseif strucType[tempID] == loc("Support Station") then |
769 if GetGearType(gear) == gtHedgehog then |
751 |
770 if GetHogClan(gear) == strucClan[tempID] then |
752 if GetGearType(gear) == gtHedgehog then |
771 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
753 if GetHogClan(gear) == strucClan[tempID] then |
772 |
754 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
773 for i = 1, #sProx do |
755 |
774 if ((sProx[i][1] == loc("Girder Placement Mode")) |
756 for i = 1, #sProx do |
775 or (sProx[i][1] == loc("Rubber Placement Mode")) |
757 if ((sProx[i][1] == loc("Health Crate Placement Mode")) |
776 or (sProx[i][1] == loc("Mine Placement Mode")) |
758 or (sProx[i][1] == loc("Weapon Crate Placement Mode")) |
777 or (sProx[i][1] == loc("Sticky Mine Placement Mode")) |
759 or (sProx[i][1] == loc("Utility Crate Placement Mode"))) |
778 or (sProx[i][1] == loc("Barrel Placement Mode"))) |
760 then |
779 then |
761 sProx[i][2] = true |
780 sProx[i][2] = true |
|
781 end |
|
782 end |
762 end |
783 |
|
784 |
|
785 end |
763 end |
764 |
|
765 |
|
786 end |
766 end |
787 |
767 end |
788 -- mark as within stupport station range |
768 |
789 -- and thus allow menu access to placement modes |
769 -- doesn't do shit |
790 -- for weapon, utility, and med crates |
770 elseif strucType[tempID] == loc("Core") then |
791 elseif strucType[tempID] == loc("Support Station") then |
771 |
792 |
772 if GetGearType(gear) == gtHedgehog then |
793 if GetGearType(gear) == gtHedgehog then |
773 if GetHogClan(gear) == strucClan[tempID] then |
794 if GetHogClan(gear) == strucClan[tempID] then |
774 |
795 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
775 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
796 |
776 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
797 for i = 1, #sProx do |
777 SetVisualGearValues(tempE, g1+20, g2, g3, g4, g5, g6, g7, g8, g9, GetClanColor(strucClan[tempID]) ) |
798 if ((sProx[i][1] == loc("Health Crate Placement Mode")) |
778 |
799 or (sProx[i][1] == loc("Weapon Crate Placement Mode")) |
779 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
800 or (sProx[i][1] == loc("Utility Crate Placement Mode"))) |
780 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
801 then |
781 SetVisualGearValues(tempE, g1-20, g2, g3, g4, g5, g6, g7, g8, g9, GetClanColor(strucClan[tempID]) ) |
802 sProx[i][2] = true |
782 |
803 --AddCaption("wahey in a support station") |
|
804 end |
|
805 end |
|
806 |
|
807 |
|
808 end |
|
809 end |
783 end |
810 |
784 end |
811 -- doesn't do shit |
785 |
812 elseif strucType[tempID] == loc("Core") then |
786 end |
813 |
787 |
814 if GetGearType(gear) == gtHedgehog then |
788 end |
815 if GetHogClan(gear) == strucClan[tempID] then |
|
816 |
|
817 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
|
818 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
|
819 SetVisualGearValues(tempE, g1+20, g2, g3, g4, g5, g6, g7, g8, g9, GetClanColor(strucClan[tempID]) ) |
|
820 |
|
821 tempE = AddVisualGear(GetX(strucGear[tempID]), GetY(strucGear[tempID]), vgtSmoke, 0, true) |
|
822 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
|
823 SetVisualGearValues(tempE, g1-20, g2, g3, g4, g5, g6, g7, g8, g9, GetClanColor(strucClan[tempID]) ) |
|
824 |
|
825 end |
|
826 end |
|
827 |
|
828 end |
|
829 |
|
830 end |
|
831 |
|
832 --end |
|
833 |
789 |
834 end |
790 end |
835 |
791 |
836 -- used to check if we need to run through all hogs or just currenthedgehog |
792 -- used to check if we need to run through all hogs or just currenthedgehog |
837 function isAStructureThatAppliesToMultipleGears(pID) |
793 function isAStructureThatAppliesToMultipleGears(pID) |
880 tempE = AddVisualGear(GetX(strucGear[i]), GetY(strucGear[i]), vgtSmoke, 0, true) |
836 tempE = AddVisualGear(GetX(strucGear[i]), GetY(strucGear[i]), vgtSmoke, 0, true) |
881 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
837 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
882 SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, GetClanColor(strucClan[i]) ) |
838 SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, GetClanColor(strucClan[i]) ) |
883 elseif strucType[i] == loc("Reflector Shield") then |
839 elseif strucType[i] == loc("Reflector Shield") then |
884 |
840 |
885 |
|
886 |
|
887 --frameID = 1 |
|
888 --visualSprite = sprTarget |
|
889 --g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(strucAltDisplay[i]) --frameID / g6 |
|
890 --SetVisualGearValues(strucAltDisplay[i], GetX(strucGear[i]), GetY(strucGear[i]), 0, 0, g5, g6, 8000, visualSprite, g9, g10 ) |
|
891 |
|
892 elseif strucType[i] == loc("Generator") then |
841 elseif strucType[i] == loc("Generator") then |
893 |
842 |
894 --frameID = 1 |
|
895 --visualSprite = sprTarget |
|
896 --layer |
|
897 --tempE = AddVisualGear(GetX(strucGear[i]), GetY(strucGear[i]), vgtStraightShot, 1, true,1) |
|
898 --g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) --g9 |
|
899 --SetVisualGearValues(tempE, g1, g2, 0, 0, g5, frameID, g7, visualSprite, g9, g10 ) |
|
900 --SetState(strucGear[i], bor(GetState(strucGear[i]),gstInvisible) ) |
|
901 |
|
902 --currently generate power for all clans. |
|
903 -- or should power only be generated for current clan? |
|
904 for z = 0, ClansCount-1 do |
843 for z = 0, ClansCount-1 do |
905 if z == strucClan[i] then |
844 if z == strucClan[i] then |
906 increaseGearValue(strucGear[i],"power") |
845 increaseGearValue(strucGear[i],"power") |
907 if getGearValue(strucGear[i],"power") == 10 then |
846 if getGearValue(strucGear[i],"power") == 10 then |
908 setGearValue(strucGear[i],"power",0) |
847 setGearValue(strucGear[i],"power",0) |
955 if (sProx[i][2] == true) then |
894 if (sProx[i][2] == true) then |
956 anyUIProx = true |
895 anyUIProx = true |
957 end |
896 end |
958 |
897 |
959 end |
898 end |
960 |
|
961 -- doesn't do shit atm, maybe later when we add cores we can use this |
|
962 --if anyUIProx == true then --(and core is placed) |
|
963 -- AddAmmo(CurrentHedgehog, amAirAttack, 100) |
|
964 --else |
|
965 -- AddAmmo(CurrentHedgehog, amAirAttack, 0) |
|
966 --end |
|
967 |
|
968 |
899 |
969 end |
900 end |
970 |
901 |
971 |
902 |
972 function checkForSpecialWeapons() |
903 function checkForSpecialWeapons() |
1105 "Sticky Mine Placement Mode", |
1036 "Sticky Mine Placement Mode", |
1106 "Barrel Placement Mode", |
1037 "Barrel Placement Mode", |
1107 "Health Crate Placement Mode", |
1038 "Health Crate Placement Mode", |
1108 "Weapon Crate Placement Mode", |
1039 "Weapon Crate Placement Mode", |
1109 "Utility Crate Placement Mode", |
1040 "Utility Crate Placement Mode", |
1110 --"Target Placement Mode", |
|
1111 --"Cleaver Placement Mode", |
|
1112 |
|
1113 --"Advanced Repositioning Mode", |
|
1114 --"Tagging Mode", |
|
1115 --"Sprite Testing Mode", |
|
1116 --"Sprite Placement Mode", |
|
1117 "Structure Placement Mode" |
1041 "Structure Placement Mode" |
1118 } |
1042 } |
1119 |
1043 |
1120 |
1044 |
1121 sProx = { |
1045 sProx = { |
1125 {loc("Sticky Mine Placement Mode"),false}, |
1049 {loc("Sticky Mine Placement Mode"),false}, |
1126 {loc("Barrel Placement Mode"),false}, |
1050 {loc("Barrel Placement Mode"),false}, |
1127 {loc("Health Crate Placement Mode"),false}, |
1051 {loc("Health Crate Placement Mode"),false}, |
1128 {loc("Weapon Crate Placement Mode"),false}, |
1052 {loc("Weapon Crate Placement Mode"),false}, |
1129 {loc("Utility Crate Placement Mode"),false}, |
1053 {loc("Utility Crate Placement Mode"),false}, |
1130 --{loc("Target Placement Mode"),false}, |
|
1131 --{loc("Cleaver Placement Mode"),false}, |
|
1132 |
|
1133 --{loc("Advanced Repositioning Mode"),false}, |
|
1134 --{loc("Tagging Mode"),false}, |
|
1135 --{loc("Sprite Testing Mode"),false}, |
|
1136 --{loc("Sprite Placement Mode"),false}, |
|
1137 {loc("Structure Placement Mode"),false}, |
1054 {loc("Structure Placement Mode"),false}, |
1138 {loc("Teleportation Mode"),false} |
1055 {loc("Teleportation Mode"),false} |
1139 } |
1056 } |
1140 |
1057 |
1141 |
1058 |
1215 if cat[cIndex] == "Girder Placement Mode" then |
1132 if cat[cIndex] == "Girder Placement Mode" then |
1216 PlaceGirder(x, y, CGR) |
1133 PlaceGirder(x, y, CGR) |
1217 placedSpec[placedCount] = CGR |
1134 placedSpec[placedCount] = CGR |
1218 elseif cat[cIndex] == "Rubber Placement Mode" then |
1135 elseif cat[cIndex] == "Rubber Placement Mode" then |
1219 PlaceSprite(x,y, sprAmRubber, CGR, nil, nil, nil, nil, lfBouncy) |
1136 PlaceSprite(x,y, sprAmRubber, CGR, nil, nil, nil, nil, lfBouncy) |
1220 --PlaceGirder(x, y, CGR) |
|
1221 placedSpec[placedCount] = CGR |
1137 placedSpec[placedCount] = CGR |
1222 elseif cat[cIndex] == "Target Placement Mode" then |
1138 elseif cat[cIndex] == "Target Placement Mode" then |
1223 gear = AddGear(x, y, gtTarget, 0, 0, 0, 0) |
1139 gear = AddGear(x, y, gtTarget, 0, 0, 0, 0) |
1224 elseif cat[cIndex] == "Cleaver Placement Mode" then |
1140 elseif cat[cIndex] == "Cleaver Placement Mode" then |
1225 gear = AddGear(x, y, gtKnife, 0, 0, 0, 0) |
1141 gear = AddGear(x, y, gtKnife, 0, 0, 0, 0) |
1279 if getGearValue(closestGear,"tag") == nil then |
1195 if getGearValue(closestGear,"tag") == nil then |
1280 |
1196 |
1281 --if there is no tag, add a victory/failure tag and circle |
1197 --if there is no tag, add a victory/failure tag and circle |
1282 setGearValue(closestGear, "tCirc",AddVisualGear(0,0,vgtCircle,0,true)) |
1198 setGearValue(closestGear, "tCirc",AddVisualGear(0,0,vgtCircle,0,true)) |
1283 |
1199 |
1284 --AddCaption("circ added",0xffba00ff,capgrpVolume) |
|
1285 |
|
1286 if pMode[pIndex] == "Tag Victory Mode" then |
1200 if pMode[pIndex] == "Tag Victory Mode" then |
1287 setGearValue(closestGear, "tag","victory") |
1201 setGearValue(closestGear, "tag","victory") |
1288 SetVisualGearValues(getGearValue(closestGear,"tCirc"), 0, 0, 100, 255, 1, 10, 0, 40, 3, 0xff0000ff) |
1202 SetVisualGearValues(getGearValue(closestGear,"tCirc"), 0, 0, 100, 255, 1, 10, 0, 40, 3, 0xff0000ff) |
1289 elseif pMode[pIndex] == "Tag Failure Mode" then |
1203 elseif pMode[pIndex] == "Tag Failure Mode" then |
1290 setGearValue(closestGear, "tag","failure") |
1204 setGearValue(closestGear, "tag","failure") |
1292 end |
1206 end |
1293 |
1207 |
1294 |
1208 |
1295 else |
1209 else |
1296 -- remove tag and delete circ |
1210 -- remove tag and delete circ |
1297 --AddCaption("circ removed",0xffba00ff,capgrpVolume) |
|
1298 setGearValue(closestGear, "tag", nil) |
1211 setGearValue(closestGear, "tag", nil) |
1299 DeleteVisualGear(getGearValue(closestGear,"tCirc")) |
1212 DeleteVisualGear(getGearValue(closestGear,"tCirc")) |
1300 setGearValue(closestGear, "tCirc", nil) |
1213 setGearValue(closestGear, "tCirc", nil) |
1301 end |
1214 end |
1302 |
1215 |
1305 |
1218 |
1306 elseif cat[cIndex] == "Sprite Testing Mode" then |
1219 elseif cat[cIndex] == "Sprite Testing Mode" then |
1307 |
1220 |
1308 frameID = 1 |
1221 frameID = 1 |
1309 visualSprite = reducedSpriteIDArray[pIndex] |
1222 visualSprite = reducedSpriteIDArray[pIndex] |
1310 --visualSprite = spriteIDArray[pIndex] |
|
1311 tempE = AddVisualGear(x, y, vgtStraightShot, 0, true) |
1223 tempE = AddVisualGear(x, y, vgtStraightShot, 0, true) |
1312 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
1224 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) |
1313 SetVisualGearValues(tempE, g1, g2, 0, 0, g5, frameID, g7, visualSprite, g9, g10 ) |
1225 SetVisualGearValues(tempE, g1, g2, 0, 0, g5, frameID, g7, visualSprite, g9, g10 ) |
1314 --sprHorizonLong crashes game, so does skyL, as does flake |
1226 --sprHorizonLong crashes game, so does skyL, as does flake |
1315 |
1227 |
1318 --sprAMAmmos, sprAMSlotKeys, sprTurnsLeft, sprExplosivesRoll + maybe some others like the health case, arrows, etc |
1230 --sprAMAmmos, sprAMSlotKeys, sprTurnsLeft, sprExplosivesRoll + maybe some others like the health case, arrows, etc |
1319 |
1231 |
1320 elseif cat[cIndex] == "Sprite Placement Mode" then |
1232 elseif cat[cIndex] == "Sprite Placement Mode" then |
1321 |
1233 |
1322 PlaceSprite(x,y, reducedSpriteIDArray[pIndex], 1, nil, nil, nil, nil, landType) |
1234 PlaceSprite(x,y, reducedSpriteIDArray[pIndex], 1, nil, nil, nil, nil, landType) |
1323 --PlaceGirder(x, y, CGR) |
|
1324 placedSpec[placedCount] = reducedSpriteTextArray[pIndex] |
1235 placedSpec[placedCount] = reducedSpriteTextArray[pIndex] |
1325 placedSuperSpec[placedCount] = landType |
1236 placedSuperSpec[placedCount] = landType |
1326 |
1237 |
1327 if landType == lfIce then |
1238 if landType == lfIce then |
1328 placedSuperSpec[placedCount] = "lfIce" |
1239 placedSuperSpec[placedCount] = "lfIce" |
1365 placedExpense = 1 |
1276 placedExpense = 1 |
1366 |
1277 |
1367 if cat[cIndex] == "Girder Placement Mode" then |
1278 if cat[cIndex] == "Girder Placement Mode" then |
1368 pIndex = CGR |
1279 pIndex = CGR |
1369 pMode = {loc("Girder")} |
1280 pMode = {loc("Girder")} |
1370 -- pCount = 1 |
|
1371 elseif cat[cIndex] == "Rubber Placement Mode" then |
1281 elseif cat[cIndex] == "Rubber Placement Mode" then |
1372 pIndex = CGR |
1282 pIndex = CGR |
1373 pMode = {loc("Rubber")} |
1283 pMode = {loc("Rubber")} |
1374 placedExpense = 3 |
1284 placedExpense = 3 |
1375 -- pCount = 1??? |
|
1376 elseif cat[cIndex] == "Target Placement Mode" then |
1285 elseif cat[cIndex] == "Target Placement Mode" then |
1377 pMode = {loc("Target")} |
1286 pMode = {loc("Target")} |
1378 elseif cat[cIndex] == "Cleaver Placement Mode" then |
1287 elseif cat[cIndex] == "Cleaver Placement Mode" then |
1379 pMode = {loc("Cleaver")} |
1288 pMode = {loc("Cleaver")} |
1380 elseif cat[cIndex] == "Barrel Placement Mode" then |
1289 elseif cat[cIndex] == "Barrel Placement Mode" then |
1383 elseif cat[cIndex] == "Health Crate Placement Mode" then |
1292 elseif cat[cIndex] == "Health Crate Placement Mode" then |
1384 pMode = {25} |
1293 pMode = {25} |
1385 placedExpense = 5 |
1294 placedExpense = 5 |
1386 elseif cat[cIndex] == "Weapon Crate Placement Mode" then |
1295 elseif cat[cIndex] == "Weapon Crate Placement Mode" then |
1387 for i = 1, #atkArray do |
1296 for i = 1, #atkArray do |
1388 pMode[i] = atkArray[i][4] -- was [2] |
1297 pMode[i] = atkArray[i][4] |
1389 end |
1298 end |
1390 placedExpense = atkArray[pIndex][5] |
1299 placedExpense = atkArray[pIndex][5] |
1391 elseif cat[cIndex] == "Utility Crate Placement Mode" then |
1300 elseif cat[cIndex] == "Utility Crate Placement Mode" then |
1392 for i = 1, #utilArray do |
1301 for i = 1, #utilArray do |
1393 pMode[i] = utilArray[i][4] -- was [2] |
1302 pMode[i] = utilArray[i][4] |
1394 end |
1303 end |
1395 placedExpense = utilArray[pIndex][5] |
1304 placedExpense = utilArray[pIndex][5] |
1396 elseif cat[cIndex] == "Mine Placement Mode" then |
1305 elseif cat[cIndex] == "Mine Placement Mode" then |
1397 pMode = {0,1000,2000,3000,4000,5000} |
1306 pMode = {0,1000,2000,3000,4000,5000} |
1398 placedExpense = 15 |
1307 placedExpense = 15 |
1399 elseif cat[cIndex] == "Sticky Mine Placement Mode" then |
1308 elseif cat[cIndex] == "Sticky Mine Placement Mode" then |
1400 pMode = {loc("Sticky Mine")} |
1309 pMode = {loc("Sticky Mine")} |
1401 --elseif cat[cIndex] == "Gear Repositioning Mode" then |
|
1402 -- for i = 1, #hhs do |
|
1403 -- pMode[i] = GetHogName(hhs[i]) |
|
1404 -- end |
|
1405 placedExpense = 20 |
1310 placedExpense = 20 |
1406 elseif cat[cIndex] == "Advanced Repositioning Mode" then |
1311 elseif cat[cIndex] == "Advanced Repositioning Mode" then |
1407 pMode = {"Selection Mode","Placement Mode"} |
1312 pMode = {"Selection Mode","Placement Mode"} |
1408 elseif cat[cIndex] == "Tagging Mode" then |
1313 elseif cat[cIndex] == "Tagging Mode" then |
1409 pMode = {"Tag Victory Mode","Tag Failure Mode"} |
1314 pMode = {"Tag Victory Mode","Tag Failure Mode"} |
1410 elseif cat[cIndex] == "Sprite Testing Mode" or cat[cIndex] == "Sprite Placement Mode" then |
1315 elseif cat[cIndex] == "Sprite Testing Mode" or cat[cIndex] == "Sprite Placement Mode" then |
1411 --for i = 1, #spriteTextArray do |
|
1412 -- pMode[i] = spriteTextArray[i] |
|
1413 --end |
|
1414 for i = 1, #reducedSpriteTextArray do |
1316 for i = 1, #reducedSpriteTextArray do |
1415 pMode[i] = reducedSpriteTextArray[i] |
1317 pMode[i] = reducedSpriteTextArray[i] |
1416 end |
1318 end |
1417 placedExpense = 100 |
1319 placedExpense = 100 |
1418 elseif cat[cIndex] == "Structure Placement Mode" then |
1320 elseif cat[cIndex] == "Structure Placement Mode" then |
1419 pMode = {loc("Healing Station"), loc("Bio-Filter"), loc("Weapon Filter"), loc("Reflector Shield"), loc("Respawner"),loc("Teleportation Node"),--[[loc("Core"),]]loc("Generator"),loc("Construction Station"),loc("Support Station")} |
1321 pMode = {loc("Healing Station"), loc("Bio-Filter"), loc("Weapon Filter"), loc("Reflector Shield"), loc("Respawner"),loc("Teleportation Node"),loc("Generator"),loc("Construction Station"),loc("Support Station")} |
1420 --placedExpense = 100 |
|
1421 end |
1322 end |
1422 |
1323 |
1423 |
1324 |
1424 |
1325 |
1425 |
1326 |
1464 elseif (cIndex ~=2) and (curWep == amRubber) then |
1365 elseif (cIndex ~=2) and (curWep == amRubber) then |
1465 cIndex = 2 |
1366 cIndex = 2 |
1466 RedefineSubset() |
1367 RedefineSubset() |
1467 -- change to generic mode if girder no longer selected |
1368 -- change to generic mode if girder no longer selected |
1468 elseif (cIndex == 1) and (curWep ~= amGirder) then |
1369 elseif (cIndex == 1) and (curWep ~= amGirder) then |
1469 cIndex = 3 -- was 2 |
1370 cIndex = 3 |
1470 RedefineSubset() |
1371 RedefineSubset() |
1471 elseif (cIndex == 2) and (curWep ~= amRubber) then |
1372 elseif (cIndex == 2) and (curWep ~= amRubber) then |
1472 cIndex = 3 --new |
1373 cIndex = 3 |
1473 RedefineSubset() |
1374 RedefineSubset() |
1474 |
1375 |
1475 end |
1376 end |
1476 |
1377 |
1477 -- update display selection criteria |
1378 -- update display selection criteria |
1551 cGear = nil |
1452 cGear = nil |
1552 elseif GetGearType(cGear) == gtGirder then |
1453 elseif GetGearType(cGear) == gtGirder then |
1553 |
1454 |
1554 CGR = GetState(cGear) |
1455 CGR = GetState(cGear) |
1555 |
1456 |
1556 -- improve rectangle test based on CGR when you can be bothered |
1457 PlaceObject(x, y) |
1557 --if TestRectForObstacle(x-20, y-20, x+20, y+20, true) then |
|
1558 -- AddCaption("Invalid Girder Placement",0xffba00ff,capgrpVolume) |
|
1559 --else |
|
1560 PlaceObject(x, y) |
|
1561 --end |
|
1562 |
|
1563 -- this allows the girder tool to be used like a mining laser |
|
1564 |
|
1565 --[[ |
|
1566 |
|
1567 if CGR < 4 then |
|
1568 AddGear(x, y, gtGrenade, 0, 0, 0, 1) |
|
1569 elseif CGR == 4 then |
|
1570 g = AddGear(x-30, y, gtGrenade, 0, 0, 0, 1) |
|
1571 g = AddGear(x+30, y, gtGrenade, 0, 0, 0, 1) |
|
1572 elseif CGR == 5 then ------- |
|
1573 g = AddGear(x+30, y+30, gtGrenade, 0, 0, 0, 1) |
|
1574 g = AddGear(x-30, y-30, gtGrenade, 0, 0, 0, 1) |
|
1575 elseif CGR == 6 then |
|
1576 g = AddGear(x, y+30, gtGrenade, 0, 0, 0, 1) |
|
1577 g = AddGear(x, y-30, gtGrenade, 0, 0, 0, 1) |
|
1578 elseif CGR == 7 then ------- |
|
1579 g = AddGear(x+30, y-30, gtGrenade, 0, 0, 0, 1) |
|
1580 g = AddGear(x-30, y+30, gtGrenade, 0, 0, 0, 1) |
|
1581 end |
|
1582 ]] |
|
1583 end |
1458 end |
1584 |
1459 |
1585 end |
1460 end |
1586 |
1461 |
1587 end |
1462 end |
1685 cIndex = #cat |
1560 cIndex = #cat |
1686 elseif cIndex > #cat then |
1561 elseif cIndex > #cat then |
1687 cIndex = 3 -- 2 ----we no longer hit girder by normal means |
1562 cIndex = 3 -- 2 ----we no longer hit girder by normal means |
1688 end |
1563 end |
1689 |
1564 |
1690 -- new way of doing things |
|
1691 -- sProx[cIndex][2] == true just basically means we have ACCESS to something |
|
1692 -- but that doesn't neccessarily mean we are in the correct content menu, anymore |
|
1693 -- so we need to refine this a little |
|
1694 if sProx[cIndex][2] == true then |
1565 if sProx[cIndex][2] == true then |
1695 if (GetCurAmmoType() == amNapalm) then |
1566 if (GetCurAmmoType() == amNapalm) then |
1696 if (sProx[cIndex][1] == loc("Health Crate Placement Mode")) or |
1567 if (sProx[cIndex][1] == loc("Health Crate Placement Mode")) or |
1697 (sProx[cIndex][1] == loc("Weapon Crate Placement Mode")) or |
1568 (sProx[cIndex][1] == loc("Weapon Crate Placement Mode")) or |
1698 (sProx[cIndex][1] == loc("Utility Crate Placement Mode")) |
1569 (sProx[cIndex][1] == loc("Utility Crate Placement Mode")) |
1713 end |
1584 end |
1714 end |
1585 end |
1715 |
1586 |
1716 |
1587 |
1717 if foundMatch == true then |
1588 if foundMatch == true then |
1718 --if sProx[cIndex][2] == true then |
|
1719 -- normal case (scrolling through) |
|
1720 --foundMatch = true |
|
1721 RedefineSubset() |
1589 RedefineSubset() |
1722 updateCost() |
1590 updateCost() |
1723 end |
1591 end |
1724 |
1592 |
1725 end |
1593 end |
1781 ShowMission ( |
1649 ShowMission ( |
1782 loc("CONSTRUCTION MODE"), |
1650 loc("CONSTRUCTION MODE"), |
1783 loc("a Hedgewars mini-game"), |
1651 loc("a Hedgewars mini-game"), |
1784 " " .. "|" .. |
1652 " " .. "|" .. |
1785 loc("Build a fortress and destroy your enemy.") .. "|" .. |
1653 loc("Build a fortress and destroy your enemy.") .. "|" .. |
1786 --loc("Defend your core from the enemy.") .. "|" .. |
|
1787 loc("There are a variety of structures available to aid you.") .. "|" .. |
1654 loc("There are a variety of structures available to aid you.") .. "|" .. |
1788 loc("Use the air-attack weapons and the arrow keys to select structures.") .. "|" .. |
1655 loc("Use the air-attack weapons and the arrow keys to select structures.") .. "|" .. |
1789 " " .. "|" .. |
1656 " " .. "|" .. |
1790 --loc("Core") .. ": " .. loc("Allows placement of structures.") .. "|" .. |
|
1791 loc("Healing Station") .. ": " .. loc("Grants nearby hogs life-regeneration.") .. "|" .. |
1657 loc("Healing Station") .. ": " .. loc("Grants nearby hogs life-regeneration.") .. "|" .. |
1792 loc("Bio-Filter") .. ": " .. loc("Aggressively removes enemy hedgehogs.") .. "|" .. |
1658 loc("Bio-Filter") .. ": " .. loc("Aggressively removes enemy hedgehogs.") .. "|" .. |
1793 loc("Weapon Filter") .. ": " .. loc("Dematerializes weapons and equipment carried by enemy hedgehogs.") .. "|" .. |
1659 loc("Weapon Filter") .. ": " .. loc("Dematerializes weapons and equipment carried by enemy hedgehogs.") .. "|" .. |
1794 loc("Reflector Shield") .. ": " .. loc("Reflects enemy projectiles.") .. "|" .. |
1660 loc("Reflector Shield") .. ": " .. loc("Reflects enemy projectiles.") .. "|" .. |
1795 |
1661 |
1799 loc("Construction Station") .. ": " .. loc("Allows placement of girders, rubber-bands, mines, sticky mines and barrels.") .. "|" .. |
1665 loc("Construction Station") .. ": " .. loc("Allows placement of girders, rubber-bands, mines, sticky mines and barrels.") .. "|" .. |
1800 loc("Support Station") .. ": " .. loc("Allows the placement of weapons, utiliites, and health crates.") .. "|" .. |
1666 loc("Support Station") .. ": " .. loc("Allows the placement of weapons, utiliites, and health crates.") .. "|" .. |
1801 |
1667 |
1802 |
1668 |
1803 " " .. "|" .. |
1669 " " .. "|" .. |
1804 --" " .. "|" .. |
|
1805 "", 4, 5000 |
1670 "", 4, 5000 |
1806 ) |
1671 ) |
1807 |
1672 |
1808 |
1673 |
1809 sCirc = AddVisualGear(0,0,vgtCircle,0,true) |
1674 sCirc = AddVisualGear(0,0,vgtCircle,0,true) |
1871 |
1736 |
1872 -- track hedgehogs and placement gears |
1737 -- track hedgehogs and placement gears |
1873 function onGearAdd(gear) |
1738 function onGearAdd(gear) |
1874 |
1739 |
1875 if GetGearType(gear) == gtHedgehog then |
1740 if GetGearType(gear) == gtHedgehog then |
1876 --table.insert(hhs, gear) |
|
1877 elseif (GetGearType(gear) == gtAirAttack) or (GetGearType(gear) == gtTeleport) or (GetGearType(gear) == gtGirder) then |
1741 elseif (GetGearType(gear) == gtAirAttack) or (GetGearType(gear) == gtTeleport) or (GetGearType(gear) == gtGirder) then |
1878 cGear = gear |
1742 cGear = gear |
1879 |
1743 |
1880 end |
1744 end |
1881 |
1745 |