share/hedgewars/Data/Scripts/Multiplayer/HedgeEditor.lua
changeset 11991 5a51bca7eeaa
parent 11990 c3866ee03b82
child 11992 c3c7c036c521
equal deleted inserted replaced
11990:c3866ee03b82 11991:5a51bca7eeaa
   120 
   120 
   121 -- INVESTIGATE when you can bother to do so
   121 -- INVESTIGATE when you can bother to do so
   122 -- is airmine still missing anywhere, e.g. the weplist generated FOR THE TEMPLATE SCRIPT
   122 -- is airmine still missing anywhere, e.g. the weplist generated FOR THE TEMPLATE SCRIPT
   123 
   123 
   124 -- [high] 	waypoints don't reload yet
   124 -- [high] 	waypoints don't reload yet
   125 
       
   126 -- [high] 	look into placing dud/random mines (probably needs a nil value)
       
   127 
   125 
   128 -- [high] 	add missing weps/utils/gears as they appear
   126 -- [high] 	add missing weps/utils/gears as they appear
   129 --			some gameflags and settings are probably missing, too (diff border types etc)
   127 --			some gameflags and settings are probably missing, too (diff border types etc)
   130 --			some themes are also probably missing: cake, hoggywood?
   128 --			some themes are also probably missing: cake, hoggywood?
   131 -- 			the ongameinit stuff is probaably missing something akin to numAirMines
   129 -- 			the ongameinit stuff is probaably missing something akin to numAirMines
   864 local cIndex = 1 -- category index
   862 local cIndex = 1 -- category index
   865 local cat = 	{
   863 local cat = 	{
   866 				loc("Girder Placement Mode"),
   864 				loc("Girder Placement Mode"),
   867 				loc("Rubber Placement Mode"),
   865 				loc("Rubber Placement Mode"),
   868 				loc("Mine Placement Mode"),
   866 				loc("Mine Placement Mode"),
       
   867 				loc("Dud Mine Placement Mode"),
   869 				loc("Sticky Mine Placement Mode"),
   868 				loc("Sticky Mine Placement Mode"),
   870 				loc("Air Mine Placement Mode"),
   869 				loc("Air Mine Placement Mode"),
   871 				loc("Barrel Placement Mode"),
   870 				loc("Barrel Placement Mode"),
   872 				loc("Health Crate Placement Mode"),
   871 				loc("Health Crate Placement Mode"),
   873 				loc("Weapon Crate Placement Mode"),
   872 				loc("Weapon Crate Placement Mode"),
  1598 		gear = AddGear(x, y, gtExplosives, 0, 0, 0, 0)
  1597 		gear = AddGear(x, y, gtExplosives, 0, 0, 0, 0)
  1599 		SetHealth(gear, pMode[pIndex])
  1598 		SetHealth(gear, pMode[pIndex])
  1600 	elseif cat[cIndex] == loc("Mine Placement Mode") then
  1599 	elseif cat[cIndex] == loc("Mine Placement Mode") then
  1601 		gear = AddGear(x, y, gtMine, 0, 0, 0, 0)
  1600 		gear = AddGear(x, y, gtMine, 0, 0, 0, 0)
  1602 		SetTimer(gear, pMode[pIndex])
  1601 		SetTimer(gear, pMode[pIndex])
       
  1602 	elseif cat[cIndex] == loc("Dud Mine Placement Mode") then
       
  1603 		gear = AddGear(x, y, gtMine, 0, 0, 0, 0)
       
  1604 		SetHealth(gear, 0)
       
  1605 		SetGearValues(gear, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 36 - pMode[pIndex])
  1603 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  1606 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  1604 		gear = AddGear(x, y, gtSMine, 0, 0, 0, 0)
  1607 		gear = AddGear(x, y, gtSMine, 0, 0, 0, 0)
  1605 		SetTimer(gear, pMode[pIndex])
  1608 		SetTimer(gear, pMode[pIndex])
  1606 	elseif cat[cIndex] == loc("Air Mine Placement Mode") then
  1609 	elseif cat[cIndex] == loc("Air Mine Placement Mode") then
  1607 		gear = AddGear(x, y, gtAirMine, 0, 0, 0, 0)
  1610 		gear = AddGear(x, y, gtAirMine, 0, 0, 0, 0)
  1779 		for i = 1, #utilArray do
  1782 		for i = 1, #utilArray do
  1780 			pMode[i] = utilArray[i][4] --pMode[i] = utilArray[i][2]
  1783 			pMode[i] = utilArray[i][4] --pMode[i] = utilArray[i][2]
  1781 		end
  1784 		end
  1782 	elseif cat[cIndex] == loc("Mine Placement Mode") then
  1785 	elseif cat[cIndex] == loc("Mine Placement Mode") then
  1783 		pMode = {3000,4000,5000,0,1000,2000}
  1786 		pMode = {3000,4000,5000,0,1000,2000}
  1784 		-- 0 is dud right, or is that nil?
  1787 	elseif cat[cIndex] == loc("Dud Mine Placement Mode") then
       
  1788 		pMode = {36,48,60,72,96,1,6,12,18,24}
       
  1789 	elseif cat[cIndex] == loc("Mine Placement Mode") then
       
  1790 		pMode = {3000,4000,5000,0,1000,2000}
  1785 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  1791 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  1786 		pMode = {500,1000,1500,2000,2500,0}
  1792 		pMode = {500,1000,1500,2000,2500,0}
  1787 	elseif cat[cIndex] == loc("Air Mine Placement Mode") then
  1793 	elseif cat[cIndex] == loc("Air Mine Placement Mode") then
  1788 		pMode = {750,1000,1250,0,250,500}
  1794 		pMode = {750,1000,1250,0,250,500}
  1789 	elseif cat[cIndex] == loc("Advanced Repositioning Mode") then
  1795 	elseif cat[cIndex] == loc("Advanced Repositioning Mode") then
  2062 			temp = 	"	tempG = AddGear(" ..
  2068 			temp = 	"	tempG = AddGear(" ..
  2063 				GetX(gear) .. ", " ..
  2069 				GetX(gear) .. ", " ..
  2064 				GetY(gear) .. ", gtMine, 0, 0, 0, 0)"
  2070 				GetY(gear) .. ", gtMine, 0, 0, 0, 0)"
  2065 			table.insert(mineList, temp)
  2071 			table.insert(mineList, temp)
  2066 			table.insert(mineList, "	SetTimer(tempG, " .. GetTimer(gear) .. ")")
  2072 			table.insert(mineList, "	SetTimer(tempG, " .. GetTimer(gear) .. ")")
       
  2073 			if (GetHealth(gear) == 0) then
       
  2074 				table.insert(mineList, "	SetHealth(tempG, 0)")
       
  2075 				local _, damage
       
  2076 				_,_,_,_,_,_,_,_,_,_,_,damage = GetGearValues(gear)
       
  2077 				if damage ~= 0 then
       
  2078 					table.insert(mineList, "	SetGearValues(tempG, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "..damage..")")
       
  2079 				end
       
  2080 			end
  2067 			table.insert(mineList, "	setGearValue(tempG, \"tag\", \"" .. getGearValue(gear,"tag") .. "\")")
  2081 			table.insert(mineList, "	setGearValue(tempG, \"tag\", \"" .. getGearValue(gear,"tag") .. "\")")
  2068 		else
  2082 		else
  2069 
  2083 
  2070 			temp = 	"	SetTimer(" .. "AddGear(" ..
  2084 			temp = 	"	tempG = AddGear(" ..
  2071 				GetX(gear) .. ", " ..
  2085 				GetX(gear) .. ", " ..
  2072 				GetY(gear) .. ", gtMine, 0, 0, 0, 0)" .. ", " ..
  2086 				GetY(gear) .. ", gtMine, 0, 0, 0, "..GetTimer(gear) .. ")"
  2073 				GetTimer(gear) ..")"
       
  2074 			table.insert(mineList, temp)
  2087 			table.insert(mineList, temp)
  2075 
  2088 			if (GetHealth(gear) == 0) then
  2076 		end
  2089 				table.insert(mineList, "	SetHealth(tempG, 0)")
  2077 
  2090 				local _, damage
  2078 		if 		GetTimer(gear) == 1 then specialFlag = 1
  2091 				_,_,_,_,_,_,_,_,_,_,_,damage = GetGearValues(gear)
       
  2092 				if damage ~= 0 then
       
  2093 					table.insert(mineList, "	SetGearValues(tempG, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, "..damage..")")
       
  2094 				end
       
  2095 			end
       
  2096 
       
  2097 		end
       
  2098 
       
  2099 		if 		GetTimer(gear) == 0 then specialFlag = 1
  2079 		elseif	GetTimer(gear) == 1000 then specialFlag = 2
  2100 		elseif	GetTimer(gear) == 1000 then specialFlag = 2
  2080 		elseif	GetTimer(gear) == 2000 then specialFlag = 3
  2101 		elseif	GetTimer(gear) == 2000 then specialFlag = 3
  2081 		elseif	GetTimer(gear) == 3000 then specialFlag = 4
  2102 		elseif	GetTimer(gear) == 3000 then specialFlag = 4
  2082 		elseif	GetTimer(gear) == 4000 then specialFlag = 5
  2103 		elseif	GetTimer(gear) == 4000 then specialFlag = 5
  2083 		elseif	GetTimer(gear) == 5000 then specialFlag = 6
  2104 		elseif	GetTimer(gear) == 5000 then specialFlag = 6
  2086 	elseif GetGearType(gear) == gtSMine then
  2107 	elseif GetGearType(gear) == gtSMine then
  2087 
  2108 
  2088 		arrayList = sMineList
  2109 		arrayList = sMineList
  2089 		temp = 	"	tempG = AddGear(" ..
  2110 		temp = 	"	tempG = AddGear(" ..
  2090 				GetX(gear) .. ", " ..
  2111 				GetX(gear) .. ", " ..
  2091 				GetY(gear) .. ", gtSMine, 0, 0, 0, 0)"
  2112 				GetY(gear) .. ", gtSMine, 0, 0, 0, " ..
       
  2113 				GetTimer(gear) ..")"
  2092 		table.insert(sMineList, temp)
  2114 		table.insert(sMineList, temp)
  2093 		specialFlag = 7
  2115 		specialFlag = 7
  2094 
  2116 
  2095 	elseif GetGearType(gear) == gtAirMine then
  2117 	elseif GetGearType(gear) == gtAirMine then
  2096 
  2118 
  3024 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  3046 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
  3025 				loc("Toggle Help: Precise+1") .. "|" ..
  3047 				loc("Toggle Help: Precise+1") .. "|" ..
  3026 				"", -amMine, 60000
  3048 				"", -amMine, 60000
  3027 				)
  3049 				)
  3028 
  3050 
       
  3051 	elseif cat[cIndex] == loc("Dud Mine Placement Mode") then
       
  3052 
       
  3053 		ShowMission	(
       
  3054 				loc("DUD MINE PLACEMENT MODE"),
       
  3055 				loc("Use this mode to place dud mines"),
       
  3056 				loc("Place Object: [Left Click]") .. "|" ..
       
  3057 				loc("Change Health: [Left], [Right]") .. "|" ..
       
  3058 				" " .. "|" ..
       
  3059 				loc("Change Placement Mode: [Up], [Down]") .. "|" ..
       
  3060 				loc("Toggle Help: Precise+1") .. "|" ..
       
  3061 				"", -amMine, 60000
       
  3062 				)
       
  3063 
  3029 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  3064 	elseif cat[cIndex] == loc("Sticky Mine Placement Mode") then
  3030 
  3065 
  3031 		ShowMission	(
  3066 		ShowMission	(
  3032 				loc("STiCKY MINE PLACEMENT MODE"),
  3067 				loc("STiCKY MINE PLACEMENT MODE"),
  3033 				loc("Use this mode to place sticky mines"),
  3068 				loc("Use this mode to place sticky mines"),
  3235 			--wowaweewa, holyeeeee shite this is badly hacked (please rewrite when less lazy/morefeatures)
  3270 			--wowaweewa, holyeeeee shite this is badly hacked (please rewrite when less lazy/morefeatures)
  3236 			dCol = 0xFFFFFFFF
  3271 			dCol = 0xFFFFFFFF
  3237 			dFrame = 0
  3272 			dFrame = 0
  3238 			dAngle = 0
  3273 			dAngle = 0
  3239 			if (cat[cIndex] == loc("Mine Placement Mode")) then
  3274 			if (cat[cIndex] == loc("Mine Placement Mode")) then
       
  3275 				dSprite = sprBotlevels--sprMineOff
       
  3276 				dFrame = 1
       
  3277 			elseif (cat[cIndex] == loc("Dud Mine Placement Mode")) then
       
  3278 				-- TODO: Use dud mine sprite instead of sprite of normal mine
  3240 				dSprite = sprBotlevels--sprMineOff
  3279 				dSprite = sprBotlevels--sprMineOff
  3241 				dFrame = 1
  3280 				dFrame = 1
  3242 			elseif (cat[cIndex] == loc("Sticky Mine Placement Mode")) then
  3281 			elseif (cat[cIndex] == loc("Sticky Mine Placement Mode")) then
  3243 				dSprite = sprBotlevels--sprSMineOff
  3282 				dSprite = sprBotlevels--sprSMineOff
  3244 				dFrame = 2
  3283 				dFrame = 2