# HG changeset patch # User mikade # Date 1433337363 -32400 # Node ID a332a60df7ce13b7468bb5613121944b9385740a # Parent 54a49174dbeca5d8b50cb800eec76b3f72fc4a69 - some new mission icons - add variable portal limiter (and effects) to TechRacer - allow variable (not just infinite) ufo fuel - possibly break stuff some - more whitespace? diff -r 54a49174dbec -r a332a60df7ce share/hedgewars/Data/Graphics/missions.png Binary file share/hedgewars/Data/Graphics/missions.png has changed diff -r 54a49174dbec -r a332a60df7ce share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua Wed Jun 03 07:30:12 2015 -0400 +++ b/share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua Wed Jun 03 22:16:03 2015 +0900 @@ -61,6 +61,13 @@ -- randomly assign a map in the case of no map param -- no longer allow custom ammosets (ammo should be specified by map so that records can be valid, though we probably still need to completely limit gameflags) +-------------- +--0.9 +-------------- +-- added variable portal limiter (and effects) from Escape script +-- allow variable ufoFuel (nil is default, 2000 is infinite) +-- disallow specifying fuel in params (do this in TechMaps or HedgeEditor please) + ----------------------------- -- SCRIPT BEGINS ----------------------------- @@ -155,8 +162,8 @@ local activationStage = 0 local jet = nil -infUFO = nil - +portalDistance = 5000 -- 15 +ufoFuel = 0 local fMod = 1000000 -- 1 local roundLimit = 3 local roundNumber = 0 @@ -668,8 +675,8 @@ parseParams() mapID = tonumber(params["m"]) - infUFO = params["ufo"] + --ufoFuel = tonumber(params["ufoFuel"]) roundLimit = tonumber(params["rounds"]) if (roundLimit == 0) or (roundLimit == nil) then @@ -809,6 +816,10 @@ elseif specialPointsFlag[i] == 98 then --PlaceStruc("weaponfilter")]] + elseif specialPointsFlag[i] == 98 then + portalDistance = specialPointsX[i] + ufoFuel = specialPointsY[i] + -- Normal Girders elseif specialPointsFlag[i] == 100 then PlaceSprite(specialPointsX[i], specialPointsY[i], sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) @@ -981,10 +992,14 @@ function onGameTick20() - if (jet ~= nil) and (infUFO == "true") then - SetHealth(jet, 2000) + if (jet ~= nil) and (ufoFuel ~= 0) then + if ufoFuel == 2000 then + SetHealth(jet, 2000) + end end + runOnGears(PortalEffects) + -- airstrike detected, convert this into a potential waypoint spot if cGear ~= nil then x,y = GetGearPosition(cGear) @@ -1096,6 +1111,61 @@ end +-- handle short range portal gun +function PortalEffects(gear) + + if GetGearType(gear) == gtPortal then + + tag = GetTag(gear) + if tag == 0 then + col = 0xfab02aFF -- orange ball + elseif tag == 1 then + col = 0x00FF00FF -- orange portal + elseif tag == 2 then + col = 0x364df7FF -- blue ball + elseif tag == 3 then + col = 0xFFFF00FF -- blue portal + end + + if (tag == 0) or (tag == 2) then -- i.e ball form + tempE = AddVisualGear(GetX(gear), GetY(gear), vgtDust, 0, true) + g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) + SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, 1, g9, col ) + + remLife = getGearValue(gear,"life") + remLife = remLife - 1 + setGearValue(gear, "life", remLife) + + if remLife == 0 then + + tempE = AddVisualGear(GetX(gear)+15, GetY(gear), vgtSmoke, 0, true) + g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) + SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, col ) + + tempE = AddVisualGear(GetX(gear)-15, GetY(gear), vgtSmoke, 0, true) + g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) + SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, col ) + + tempE = AddVisualGear(GetX(gear), GetY(gear)+15, vgtSmoke, 0, true) + g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) + SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, col ) + + tempE = AddVisualGear(GetX(gear), GetY(gear)-15, vgtSmoke, 0, true) + g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) + SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, col ) + + + PlaySound(sndVaporize) + DeleteGear(gear) + + end + + end + + end + +end + function onGearResurrect(gear) AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false) @@ -1112,6 +1182,7 @@ (GetGearType(gear) == gtTarget) or (GetGearType(gear) == gtFlame) or (GetGearType(gear) == gtExplosives) or + (GetGearType(gear) == gtPortal) or (GetGearType(gear) == gtMine) or (GetGearType(gear) == gtSMine) or (GetGearType(gear) == gtAirMine) or @@ -1125,21 +1196,28 @@ function onGearAdd(gear) - if isATrackedGear(gear) then - trackGear(gear) + if isATrackedGear(gear) then + trackGear(gear) + + if GetGearType(gear) == gtPortal then + setGearValue(gear,"life",portalDistance) + elseif GetGearType(gear) == gtHedgehog then + hhs[numhhs] = gear + numhhs = numhhs + 1 + SetEffect(gear, heResurrectable, 1) end - if GetGearType(gear) == gtHedgehog then - hhs[numhhs] = gear - numhhs = numhhs + 1 - SetEffect(gear, heResurrectable, 1) - end + end - if GetGearType(gear) == gtAirAttack then - cGear = gear - elseif GetGearType(gear) == gtJetpack then - jet = gear + if GetGearType(gear) == gtAirAttack then + cGear = gear + elseif GetGearType(gear) == gtJetpack then + jet = gear + if (ufoFuel ~= 0) then + SetHealth(jet, ufoFuel) end + end + end diff -r 54a49174dbec -r a332a60df7ce share/hedgewars/Data/Scripts/TechMaps.lua --- a/share/hedgewars/Data/Scripts/TechMaps.lua Wed Jun 03 07:30:12 2015 -0400 +++ b/share/hedgewars/Data/Scripts/TechMaps.lua Wed Jun 03 22:16:03 2015 +0900 @@ -8,6 +8,8 @@ -- TO DO -------------- -- continue to fix/improve old/broken/incompatible maps, and add more maps. +-- add ufo fuel per map + HedgewarsScriptLoad("/Scripts/Tracker.lua") @@ -1480,7 +1482,7 @@ -- more detailed landflag test map, should hopefully work now -- probably my second favorite techracer map - infUFO = "false" + ------ GIRDER LIST ------ LoadSprite(402, 1863, sprAmGirder, 0, 16448250, nil, nil, nil, lfIce) LoadSprite(442, 1863, sprAmGirder, 4, 16448250, nil, nil, nil, lfIce) @@ -1714,7 +1716,7 @@ elseif mID == 3 then --Helix airmine map - infUFO = "true" + ufoFuel = 2000 ------ GIRDER LIST ------ LoadSprite(3703, 157, sprAmGirder, 7, 4294967295, nil, nil, nil, lfNormal) LoadSprite(3846, 100, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) @@ -2347,7 +2349,6 @@ elseif mID == 6 then --incomplete challenge, still working on this map - infUFO = "false" ------ GIRDER LIST ------ LoadSprite(419, 298, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) LoadSprite(348, 387, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) @@ -2396,6 +2397,157 @@ LoadSprite(1176, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) LoadSprite(1333, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) LoadSprite(1491, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1649, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1808, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1898, 1800, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1942, 1798, sprAmGirder, 3, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(2010, 1798, sprAmGirder, 1, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(2054, 1804, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2054, 1925, sprAmGirder, 2, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1898, 1639, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2054, 1643, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2125, 1553, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2197, 1464, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(2126, 1374, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1965, 1374, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1804, 1374, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1733, 1464, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1823, 1547, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2023, 1976, sprAmGirder, 0, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1961, 2003, sprAmGirder, 3, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2216, 1464, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(2234, 1464, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(2252, 1464, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(2270, 1464, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(2245, 1553, sprAmGirder, 0, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2246, 1374, sprAmGirder, 0, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2351, 1310, sprAmGirder, 7, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(2350, 1490, sprAmGirder, 7, 2516582650, nil, nil, nil, lfIndestructible) + + ------ RUBBER BAND LIST ------ + LoadSprite(210, 958, sprAmRubber, 1, 4294967295, nil, nil, nil, lfBouncy) + LoadSprite(98, 844, sprAmRubber, 1, 4294967295, nil, nil, nil, lfBouncy) + + ------ LAND SPRITE LIST ------ + + ------ WAYPOINT LIST ------ + AddWayPoint(438, 278) + AddWayPoint(1870, 1354) + AddWayPoint(892, 1100) + + ------ HEALTH CRATE LIST ------ + + ------ AMMO CRATE LIST ------ + tempG = SpawnAmmoCrate(1943, 1978, amBazooka) + setGearValue(tempG,"caseType", "ammo") + setGearValue(tempG,"contents", "amBazooka") + tempG = SpawnAmmoCrate(2002, 1952, amSineGun) + setGearValue(tempG,"caseType", "ammo") + setGearValue(tempG,"contents", "amSineGun") + tempG = SpawnAmmoCrate(2002, 1890, amSineGun) + setGearValue(tempG,"caseType", "ammo") + setGearValue(tempG,"contents", "amSineGun") + tempG = SpawnAmmoCrate(2002, 1921, amSineGun) + setGearValue(tempG,"caseType", "ammo") + setGearValue(tempG,"contents", "amSineGun") + tempG = SpawnAmmoCrate(1998, 1859, amSineGun) + setGearValue(tempG,"caseType", "ammo") + setGearValue(tempG,"contents", "amSineGun") + + ------ UTILITY CRATE LIST ------ + tempG = SpawnUtilityCrate(368, 274, amPickHammer) + setGearValue(tempG,"caseType", "util") + setGearValue(tempG,"contents", "amPickHammer") + tempG = SpawnUtilityCrate(526, 568, amExtraTime) + setGearValue(tempG,"caseType", "util") + setGearValue(tempG,"contents", "amExtraTime") + tempG = SpawnUtilityCrate(474, 1014, amExtraTime) + setGearValue(tempG,"caseType", "util") + setGearValue(tempG,"contents", "amExtraTime") + tempG = SpawnUtilityCrate(906, 1955, amRope) + setGearValue(tempG,"caseType", "util") + setGearValue(tempG,"contents", "amRope") + tempG = SpawnUtilityCrate(2127, 1529, amBlowTorch) + setGearValue(tempG,"caseType", "util") + setGearValue(tempG,"contents", "amBlowTorch") + + ------ BARREL LIST ------ + SetHealth(AddGear(1860, 1523, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(1817, 1523, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(1836, 1493, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(1769, 1523, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(1792, 1494, gtExplosives, 0, 0, 0, 0), 1) + + ------ MINE LIST ------ + SetTimer(AddGear(318, 1028, gtMine, 0, 0, 0, 0), 1) + + ------ STICKY MINE LIST ------ + tempG = AddGear(1767, 1506, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1792, 1477, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1813, 1506, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1837, 1476, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1858, 1506, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1882, 1537, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1748, 1537, gtSMine, 0, 0, 0, 0) + + ------ AIR MINE LIST ------ + SetTimer(AddGear(837, 1570, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(835, 1361, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(836, 1425, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(833, 1495, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(967, 1566, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(970, 1354, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(967, 1422, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(968, 1493, gtAirMine, 0, 0, 0, 0), 1) + + --[[------ GIRDER LIST ------ + LoadSprite(419, 298, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(348, 387, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(521, 359, sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(459, 385, sprAmGirder, 3, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(570, 387, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(601, 298, sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(348, 547, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(570, 547, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(348, 707, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(570, 707, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(397, 466, sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(458, 491, sprAmGirder, 1, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(521, 592, sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(458, 620, sprAmGirder, 3, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(397, 713, sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(459, 740, sprAmGirder, 1, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(348, 867, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(570, 866, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(641, 1038, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(800, 1038, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(959, 1038, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(482, 1038, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(323, 1038, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(163, 1038, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(48, 1038, sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(813, 1126, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(989, 1127, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(989, 1288, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(989, 1449, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(813, 1287, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(813, 1448, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(900, 1214, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(989, 1570, sprAmGirder, 2, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(813, 1569, sprAmGirder, 2, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(813, 1690, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(521, 844, sprAmGirder, 0, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(457, 870, sprAmGirder, 3, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(392, 941, sprAmGirder, 1, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(813, 1851, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(813, 1972, sprAmGirder, 2, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(989, 1690, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1044, 1817, sprAmGirder, 5, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(901, 1979, sprAmGirder, 4, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(1002, 2005, sprAmGirder, 1, 4294967295, nil, nil, nil, lfNormal) + LoadSprite(1176, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1333, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) + LoadSprite(1491, 1873, sprAmGirder, 4, 2516582650, nil, nil, nil, lfIndestructible) LoadSprite(1625, 1815, sprAmGirder, 7, 2516582650, nil, nil, nil, lfIndestructible) LoadSprite(1680, 1688, sprAmGirder, 6, 2516582650, nil, nil, nil, lfIndestructible) LoadSprite(1669, 1980, sprAmGirder, 7, 4294967295, nil, nil, nil, lfNormal) @@ -2467,13 +2619,13 @@ SetTimer(AddGear(967, 1566, gtAirMine, 0, 0, 0, 0), 1) SetTimer(AddGear(970, 1354, gtAirMine, 0, 0, 0, 0), 1) SetTimer(AddGear(967, 1422, gtAirMine, 0, 0, 0, 0), 1) - SetTimer(AddGear(968, 1493, gtAirMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(968, 1493, gtAirMine, 0, 0, 0, 0), 1)]] elseif mID == 7 then --Bouncy UFO MAP -- should be played with infinite fuel - infUFO = "true" + ufoFuel = 2000 ------ GIRDER LIST ------ LoadSprite(3699, 436, sprAmGirder, 0, 16448250, nil, nil, nil, lfIce) LoadSprite(934, 806, sprAmGirder, 6, 4294967295, nil, nil, nil, lfNormal) @@ -3027,7 +3179,6 @@ else - infUFO = "false" -- the first test epic multi map -- default to this crazy shit ---------- GIRDER LIST---------