share/hedgewars/Data/Missions/Training/portal.lua
changeset 11973 1de4d6b35748
parent 11972 7dd85fe00de3
child 11974 7718ebf8cf14
equal deleted inserted replaced
11972:7dd85fe00de3 11973:1de4d6b35748
     1 HedgewarsScriptLoad("/Scripts/Locale.lua")
       
     2 HedgewarsScriptLoad("/Scripts/Utils.lua")
       
     3 
       
     4 local MineArray = {}
       
     5 local player
       
     6 local adviceGiven = false
       
     7 local adviceGiven2 = false
       
     8 
       
     9 function onGameInit()
       
    10 	Seed = 0 -- The base number for the random number generator
       
    11 	GameFlags = gfInfAttack +gfBorder +gfDisableWind +gfSolidLand
       
    12 	TurnTime = 1500000 -- The time the player has to move each round (in ms)
       
    13 	CaseFreq = 0 -- The frequency of crate drops
       
    14 	MinesNum = 0 -- The number of mines being placed
       
    15 	Explosives = 0 -- The number of explosives being placed
       
    16 	Delay = 10 -- The delay between each round
       
    17 	Map = "portal" -- The map to be played
       
    18 	Theme = "Hell" -- The theme to be used
       
    19 	-- Disable Sudden Death
       
    20 	HealthDecrease = 0
       
    21 	WaterRise = 0
       
    22 
       
    23 	AddTeam(loc("Subjects"), 0xFFFF01, "Simple", "Island", "Default", "cm_test")
       
    24 	player = AddHog(loc("Subject 1"), 0, 10, "Terminator_Glasses")
       
    25 
       
    26 	AddTeam(loc("Hell Army"), 0xFF0402, "skull", "Island", "Default", "cm_hellish")
       
    27 	enemy1 = AddHog(loc("Lucifer"), 1, 200, "InfernalHorns")
       
    28 	enemy2 = AddHog(loc("Voldemort"), 1, 150, "WizardHat")
       
    29 	enemy3 = AddHog(loc("Zombi"), 1, 100, "Zombi")
       
    30 	enemy4 = AddHog(loc("Predator"), 1, 14, "anzac")
       
    31 	enemy5 = AddHog(loc("Oneye"), 1, 50, "cyclops")
       
    32 	enemy6 = AddHog(loc("Razac"), 1, 50, "Evil")
       
    33 	enemy7 = AddHog(loc("C-2"), 1, 50, "cyborg1")
       
    34 	enemy8 = AddHog(loc("Rider"), 1, 50, "scif_SparkssHelmet")
       
    35 
       
    36 	AddTeam(loc("Badmad"), 0xFF0402, "skull", "Island", "Default", "cm_pentagram")
       
    37 	enemy9 = AddHog(loc("C-1"), 1, 50, "cyborg2")
       
    38 	enemy10 = AddHog(loc("Hidden"), 1, 40, "bushhider")
       
    39 	enemy11 = AddHog(loc("Ronald"), 1, 70, "clown")
       
    40 	enemy12 = AddHog(loc("Phosphat"), 1, 50, "chef")
       
    41 	enemy13 = AddHog(loc("Lestat"), 1, 30, "vampirichog")
       
    42 
       
    43 	SetGearPosition(player, 350, 1820)
       
    44 	SetGearPosition(enemy1, 2037, 1313)
       
    45 	SetGearPosition(enemy2, 1369, 1605)
       
    46 	SetGearPosition(enemy3, 1750, 1937)
       
    47 	SetGearPosition(enemy4, 3125, 89)
       
    48 	SetGearPosition(enemy5, 743, 900)
       
    49 	SetGearPosition(enemy6, 130, 360)
       
    50 	SetGearPosition(enemy7, 1333, 640)
       
    51 	SetGearPosition(enemy8, 1355, 200)
       
    52 	SetGearPosition(enemy9, 2680, 225)
       
    53 	SetGearPosition(enemy10, 2970, 800)
       
    54 	SetGearPosition(enemy11, 4050, 1964)
       
    55 	SetGearPosition(enemy12, 2666, 950)
       
    56 	SetGearPosition(enemy13, 3306, 1205)
       
    57 
       
    58 end
       
    59 
       
    60 function onAmmoStoreInit()
       
    61 
       
    62 	SetAmmo(amFirePunch, 0,0,0,1)
       
    63 	SetAmmo(amParachute, 0, 0, 0, 2)
       
    64 	SetAmmo(amGirder, 0, 0, 0, 3)
       
    65 	SetAmmo(amTeleport, 0, 0, 0, 1)
       
    66 	SetAmmo(amLaserSight,0,0,0,1)
       
    67 	SetAmmo(amHellishBomb,0,0,0,1)
       
    68 	SetAmmo(amGrenade,0,0,0,1)
       
    69 	SetAmmo(amRope,0,0,0,1)
       
    70 	SetAmmo(amDEagle,0,0,0,1)
       
    71 	SetAmmo(amExtraTime,0,0,0,2)
       
    72 	SetAmmo(amSkip,9,0,0,0)
       
    73 	SetAmmo(amBlowTorch, 0, 0, 0, 1)
       
    74 	SetAmmo(amPickHammer, 0, 0, 0, 1)
       
    75 	SetAmmo(amSnowball, 0, 0, 0, 1)
       
    76 
       
    77 end
       
    78 
       
    79 function onGameStart()
       
    80 
       
    81 	SetWind(100)
       
    82 
       
    83 	MineArray[0] = AddGear(840, 1847, gtMine, 0, 0, 0, 0)
       
    84 	MineArray[1] = AddGear(900, 1847, gtMine, 0, 0, 0, 0)
       
    85 	MineArray[2] = AddGear(1000, 1847, gtMine, 0, 0, 0, 0)
       
    86 	MineArray[3] = AddGear(1100, 1847, gtMine, 0, 0, 0, 0)
       
    87 	MineArray[4] = AddGear(1140, 1847, gtMine, 0, 0, 0, 0)
       
    88 	MineArray[5] = AddGear(1170, 1847, gtMine, 0, 0, 0, 0)
       
    89 	MineArray[6] = AddGear(1200, 1847, gtMine, 0, 0, 0, 0)
       
    90 	MineArray[7] = AddGear(1200, 1847, gtMine, 0, 0, 0, 0)
       
    91 	MineArray[8] = AddGear(1230, 1847, gtMine, 0, 0, 0, 0)
       
    92 	MineArray[9] = AddGear(1280, 1847, gtMine, 0, 0, 0, 0)
       
    93 	MineArray[10] = AddGear(1302, 1847, gtMine, 0, 0, 0, 0)
       
    94 	MineArray[11] = AddGear(1350, 1847, gtMine, 0, 0, 0, 0)
       
    95 	MineArray[12] = AddGear(1383, 1847, gtMine, 0, 0, 0, 0)
       
    96 	MineArray[13] = AddGear(1400, 1847, gtMine, 0, 0, 0, 0)
       
    97 	MineArray[14] = AddGear(1423, 1847, gtMine, 0, 0, 0, 0)
       
    98 	MineArray[15] = AddGear(1470, 1847, gtMine, 0, 0, 0, 0)
       
    99 	MineArray[16] = AddGear(1480, 1847, gtMine, 0, 0, 0, 0)
       
   100 	MineArray[17] = AddGear(1311, 1847, gtMine, 0, 0, 0, 0)
       
   101 
       
   102 	MineArray[18] = AddGear(840, 1785, gtMine, 0, 0, 0, 0)
       
   103 	MineArray[19] = AddGear(900, 1785, gtMine, 0, 0, 0, 0)
       
   104 	MineArray[20] = AddGear(1000, 1785, gtMine, 0, 0, 0, 0)
       
   105 	MineArray[21] = AddGear(1100, 1785, gtMine, 0, 0, 0, 0)
       
   106 	MineArray[22] = AddGear(1140, 1785, gtMine, 0, 0, 0, 0)
       
   107 	MineArray[23] = AddGear(1170, 1785, gtMine, 0, 0, 0, 0)
       
   108 	MineArray[24] = AddGear(1200, 1785, gtMine, 0, 0, 0, 0)
       
   109 	MineArray[25] = AddGear(1230, 1785, gtMine, 0, 0, 0, 0)
       
   110 	MineArray[26] = AddGear(1280, 1785, gtMine, 0, 0, 0, 0)
       
   111 	MineArray[27] = AddGear(1302, 1785, gtMine, 0, 0, 0, 0)
       
   112 	MineArray[28] = AddGear(1350, 1785, gtMine, 0, 0, 0, 0)
       
   113 	MineArray[29] = AddGear(1383, 1785, gtMine, 0, 0, 0, 0)
       
   114 	MineArray[30] = AddGear(1400, 1785, gtMine, 0, 0, 0, 0)
       
   115 	MineArray[31] = AddGear(1423, 1785, gtMine, 0, 0, 0, 0)
       
   116 	MineArray[32] = AddGear(1470, 1785, gtMine, 0, 0, 0, 0)
       
   117 	MineArray[33] = AddGear(1480, 1785, gtMine, 0, 0, 0, 0)
       
   118 	MineArray[34] = AddGear(1311, 1785, gtMine, 0, 0, 0, 0)
       
   119 
       
   120 	MineArray[35] = AddGear(4029, 89, gtMine, 0, 0, 0, 120)
       
   121 
       
   122 	for i = 0,#MineArray do
       
   123 		SetTimer(MineArray[i],050)
       
   124 		SetState(MineArray[i],544)
       
   125 	end
       
   126 	--needed this MineArray cause timer didn't work, its was always 3sec, i wanna instant mines
       
   127 
       
   128 	--UTILITY CRATE--
       
   129 	parachute = SpawnUtilityCrate(1670, 1165, amParachute)
       
   130 	girder = SpawnUtilityCrate(2101, 1297, amGirder)
       
   131 	SpawnUtilityCrate(3965, 625, amBlowTorch)
       
   132 	SpawnUtilityCrate(2249, 93, amBlowTorch)
       
   133 	SpawnUtilityCrate(2181, 829, amBlowTorch)
       
   134 	SpawnUtilityCrate(1820, 567, amBlowTorch)
       
   135 	SpawnUtilityCrate(1375, 900, amTeleport)
       
   136 	SpawnUtilityCrate(130, 600, amPickHammer)
       
   137 	SpawnUtilityCrate(1660,1820, amLaserSight)
       
   138 	SpawnUtilityCrate(4070,1840, amLaserSight)
       
   139 
       
   140 
       
   141 	--AMMO CRATE--
       
   142 	portalgun = SpawnAmmoCrate(505, 1943, amPortalGun, 1000)
       
   143 	extratime = SpawnAmmoCrate(4020, 785, amExtraTime, 2)
       
   144 	SpawnAmmoCrate(425, 613, amSnowball)
       
   145 	SpawnAmmoCrate(861, 633, amHellishBomb)
       
   146 	SpawnAmmoCrate(2510, 623, amSnowball)
       
   147 	SpawnAmmoCrate(2900, 1600, amGrenade)
       
   148 	SpawnAmmoCrate(2680, 320, amGrenade)
       
   149 	SpawnAmmoCrate(2650, 80, amDEagle)
       
   150 	SpawnAmmoCrate(3000, 100, amDEagle)
       
   151 	SpawnAmmoCrate(2900, 1400, amRope)
       
   152 	SpawnAmmoCrate(4025, 1117, amFirePunch)
       
   153 
       
   154 	--HEALTH CRATE--
       
   155 	SpawnHealthCrate(2000, 780)
       
   156 
       
   157 	--GIRDER--
       
   158 	PlaceGirder(3363, 1323, 4)
       
   159 
       
   160 	ShowMission (loc("Portal Mind Challenge"), loc("Mission"),
       
   161 		loc("Defeat all enemies!") .. "|" .. loc("In this mission you have infinite time."),
       
   162 		-amPortalGun, 5000)
       
   163 	HogSay(player, loc("I should get myself a portal device, maybe this crate has one."), SAY_THINK)
       
   164 
       
   165 end
       
   166 
       
   167 function onGameTick()
       
   168 
       
   169 	if (player ~= nil)  then
       
   170 		if (gearIsInBox(player, 1650, 1907, 200, 60) and (adviceGiven == false)) then
       
   171 			adviceGiven = true
       
   172 			HogSay(player, loc("Hmmm, I’ll have to find some way of moving him off this anti-portal surface."), SAY_THINK)
       
   173 		elseif (gearIsInBox(player, 2960, 790, 200, 60) and (adviceGiven2 == false)) then
       
   174 			adviceGiven2 = true
       
   175 			HogSay(player, loc("The anti-portal surface is all over the floor, and I have nothing to kill him. Dropping something could hurt him enough to kill him."), SAY_THINK)
       
   176 		end
       
   177 	end
       
   178 
       
   179 end
       
   180 
       
   181 function onGearDelete(gear)
       
   182 	-- Check gear collection
       
   183 	if CurrentHedgehog == player and (band(GetGearMessage(gear), gmDestroy) ~= 0) then
       
   184 		if gear == portalgun then
       
   185 			HogSay(player, loc("Great! Let’s kill all these enemies, using portals."), SAY_THINK)
       
   186 		end
       
   187 
       
   188 		if gear == girder then
       
   189 			HogSay(player, loc("This will be useful when I need a new platform or if I want to rise."), SAY_THINK)
       
   190 		end
       
   191 
       
   192 		if gear == parachute then
       
   193 			HogSay(player, loc("You can’t open a portal on the blue surface."), SAY_THINK)
       
   194 		end
       
   195 
       
   196 		if gear == extratime then
       
   197 			HogSay(player, loc("What?! For all this struggle I just win some ... time? Oh dear!"), SAY_SHOUT)
       
   198 		end
       
   199 	end
       
   200 
       
   201 	if gear == player then
       
   202 		player = nil
       
   203 	end
       
   204 end
       
   205