Module:Npcinfo/datagen

From Terraria Wiki
Jump to navigation Jump to search
Lua.svg Documentation The documentation below is transcluded from Module:Npcinfo/datagen/doc. (edit | history)

This helper module is used for generating the NPC database (Module:Npcinfo/data). Invoke the gen function with two NPC IDs, e.g. {{#invoke:Npcinfo/datagen|gen|20|80}}. The module will generate the data for all NPCs whose ID is between 20 and 80 (inclusive) in that case. Make sure to also include the time of generation and the Terraria version used for it in the database; this information is obtained by invoking the genMeta function.

The code of this module reproduces the Terraria.NPC.SetDefaults method from Terraria's source code, ported from C# to Lua. Various other methods or snippets of methods needed to generate NPC information are also included. The code is based on version 1.4.4.9.

As this is a helper module which is only invoked manually, it is not needed in language wikis. Only the final NPC database (Module:Npcinfo/data) is required there.


local trim = mw.text.trim
local gametext = require('Module:GameText').getText

---A cached version of the current frame, the interface to the parser.
local currentFrame

---Return a trimmed version of the value of the template parameter with the specified `key`.
---Return `nil` if the parameter is empty or unset.
---@param key string|number
---@return string|nil
local function getArg(key)
	local value = currentFrame.args[key]
	if not value then
		return nil
	end
	value = trim(value)
	if value == '' then
		return nil
	end
	return value
end


--
-- In the following sections, Terraria's C# code is reproduced in Lua.
-- Terraria version: as below (Desktop version)
--

local terrariaversion = '1.4.4.9'


--------------------
-- Item
--------------------

local Item = {}
do
	Item.buyPrice = function(platinum, gold, silver, copper)
		return copper + silver * 100 + gold * 100 * 100 + platinum * 100 * 100 * 100
	end
	Item.sellPrice = function(platinum, gold, silver, copper)
		return (copper + silver * 100 + gold * 100 * 100 + platinum * 100 * 100 * 100) * 5
	end
end


--------------------
-- Debuff immunities
--------------------

---from Terraria.ID.NPCID+Sets.DebuffImmunitySets. (1.4.4.9)
---Indices are NPC IDs, values are arrays of debuff IDs.
local DebuffImmunity = {}
local ImmuneToAll = {}
local ImmuneToAllNotWhips = {}
do
	DebuffImmunity[1] = { 20 }
	DebuffImmunity[4] = { 31 }
	DebuffImmunity[5] = { 31 }
	DebuffImmunity[6] = { 31 }
	DebuffImmunity[7] = { 31 }
	DebuffImmunity[8] = { 31 }
	DebuffImmunity[9] = { 31 }
	DebuffImmunity[10] = { 31 }
	DebuffImmunity[11] = { 31 }
	DebuffImmunity[12] = { 31 }
	DebuffImmunity[13] = { 31 }
	DebuffImmunity[14] = { 31 }
	DebuffImmunity[15] = { 31 }
	DebuffImmunity[16] = { 20 }
	DebuffImmunity[17] = { 31 }
	DebuffImmunity[18] = { 31 }
	DebuffImmunity[19] = { 31 }
	DebuffImmunity[20] = { 31 }
	DebuffImmunity[21] = { 20 }
	DebuffImmunity[22] = { 31 }
	DebuffImmunity[23] = { 20, 24, 31, 323 }
	DebuffImmunity[24] = { 24, 31, 323 }
	DebuffImmunity[25] = { 31 }
	DebuffImmunity[29] = { 31 }
	DebuffImmunity[30] = { 31 }
	DebuffImmunity[665] = { 31 }
	DebuffImmunity[31] = { 20 }
	DebuffImmunity[32] = { 20, 31 }
	DebuffImmunity[33] = { 31 }
	DebuffImmunity[34] = { 20, 31 }
	DebuffImmunity[35] = { 20, 31, 169, 337, 344 }
	DebuffImmunity[36] = { 20, 31 }
	DebuffImmunity[37] = { 31 }
	DebuffImmunity[38] = { 31 }
	DebuffImmunity[39] = { 20, 24, 31, 323 }
	DebuffImmunity[40] = { 20, 24, 31, 323 }
	DebuffImmunity[41] = { 20, 24, 31, 323 }
	DebuffImmunity[42] = { 20, 31 }
	DebuffImmunity[43] = { 20, 31 }
	DebuffImmunity[44] = { 20 }
	DebuffImmunity[45] = { 20, 31 }
	DebuffImmunity[46] = { 31 }
	DebuffImmunity[48] = { 31 }
	DebuffImmunity[50] = { 20, 31 }
	DebuffImmunity[54] = { 31 }
	DebuffImmunity[55] = { 31 }
	DebuffImmunity[56] = { 31 }
	DebuffImmunity[57] = { 31 }
	DebuffImmunity[58] = { 31 }
	DebuffImmunity[59] = { 20, 24, 323 }
	DebuffImmunity[60] = { 24, 323 }
	DebuffImmunity[61] = { 31 }
	DebuffImmunity[62] = { 24, 31, 153, 323 }
	DebuffImmunity[63] = { 31 }
	DebuffImmunity[64] = { 31 }
	DebuffImmunity[65] = { 31 }
	DebuffImmunity[66] = { 24, 31, 153, 323 }
	DebuffImmunity[67] = { 31 }
	ImmuneToAll[68] = true
	DebuffImmunity[69] = { 31 }
	DebuffImmunity[70] = { 20, 24, 31, 39, 70, 323 }
	DebuffImmunity[71] = { 20 }
	ImmuneToAll[72] = true
	DebuffImmunity[74] = { 31 }
	DebuffImmunity[76] = { 31 }
	DebuffImmunity[77] = { 20 }
	DebuffImmunity[81] = { 20 }
	ImmuneToAllNotWhips[82] = true
	DebuffImmunity[83] = { 20, 24, 31, 323 }
	DebuffImmunity[84] = { 20, 24, 31, 323 }
	DebuffImmunity[85] = { 20, 24, 31, 323 }
	DebuffImmunity[87] = { 31 }
	DebuffImmunity[88] = { 31 }
	DebuffImmunity[89] = { 31 }
	DebuffImmunity[90] = { 31 }
	DebuffImmunity[91] = { 31 }
	DebuffImmunity[92] = { 31 }
	DebuffImmunity[94] = { 31 }
	DebuffImmunity[95] = { 31 }
	DebuffImmunity[96] = { 31 }
	DebuffImmunity[97] = { 31 }
	DebuffImmunity[98] = { 31 }
	DebuffImmunity[99] = { 31 }
	DebuffImmunity[100] = { 31 }
	DebuffImmunity[101] = { 39, 31 }
	DebuffImmunity[102] = { 31 }
	DebuffImmunity[103] = { 31 }
	DebuffImmunity[105] = { 31 }
	DebuffImmunity[106] = { 31 }
	DebuffImmunity[107] = { 31 }
	DebuffImmunity[108] = { 31 }
	DebuffImmunity[109] = { 31 }
	DebuffImmunity[110] = { 20 }
	DebuffImmunity[112] = { 31 }
	DebuffImmunity[666] = { 31 }
	DebuffImmunity[113] = { 24, 31, 323 }
	DebuffImmunity[114] = { 24, 31, 323 }
	DebuffImmunity[115] = { 31 }
	DebuffImmunity[116] = { 31 }
	DebuffImmunity[117] = { 31 }
	DebuffImmunity[118] = { 31 }
	DebuffImmunity[119] = { 31 }
	DebuffImmunity[120] = { 20 }
	DebuffImmunity[121] = { 20 }
	DebuffImmunity[122] = { 20, 31 }
	DebuffImmunity[123] = { 31 }
	DebuffImmunity[124] = { 31 }
	DebuffImmunity[125] = { 20, 31 }
	DebuffImmunity[126] = { 20, 31 }
	DebuffImmunity[127] = { 20, 31, 169, 337, 344 }
	DebuffImmunity[128] = { 20, 31 }
	DebuffImmunity[129] = { 20, 31 }
	DebuffImmunity[130] = { 20, 31 }
	DebuffImmunity[131] = { 20, 31 }
	ImmuneToAllNotWhips[134] = true
	ImmuneToAllNotWhips[135] = true
	ImmuneToAllNotWhips[136] = true
	DebuffImmunity[137] = { 20 }
	DebuffImmunity[138] = { 20 }
	ImmuneToAllNotWhips[139] = true
	DebuffImmunity[140] = { 20, 24, 323 }
	DebuffImmunity[141] = { 20, 70 }
	DebuffImmunity[142] = { 31 }
	DebuffImmunity[143] = { 20, 44, 324 }
	DebuffImmunity[144] = { 20, 44, 324 }
	DebuffImmunity[145] = { 20, 44, 324 }
	DebuffImmunity[146] = { 31 }
	DebuffImmunity[147] = { 20, 44, 324 }
	DebuffImmunity[148] = { 31 }
	DebuffImmunity[149] = { 31 }
	DebuffImmunity[150] = { 44, 324 }
	DebuffImmunity[151] = { 24, 323 }
	DebuffImmunity[154] = { 44, 324 }
	DebuffImmunity[156] = { 24, 31, 153, 323 }
	DebuffImmunity[157] = { 31 }
	DebuffImmunity[160] = { 31 }
	DebuffImmunity[161] = { 44, 324 }
	DebuffImmunity[163] = { 20 }
	DebuffImmunity[164] = { 20 }
	DebuffImmunity[165] = { 20 }
	DebuffImmunity[166] = { 20 }
	DebuffImmunity[167] = { 20, 44, 324 }
	DebuffImmunity[169] = { 20, 31, 44, 324 }
	DebuffImmunity[172] = { 20, 31 }
	DebuffImmunity[173] = { 31 }
	DebuffImmunity[174] = { 31 }
	DebuffImmunity[175] = { 20, 31 }
	DebuffImmunity[176] = { 20, 31 }
	DebuffImmunity[177] = { 31 }
	DebuffImmunity[178] = { 31 }
	DebuffImmunity[179] = { 20, 24, 31, 323 }
	DebuffImmunity[181] = { 20 }
	DebuffImmunity[182] = { 20, 31 }
	DebuffImmunity[183] = { 20 }
	DebuffImmunity[184] = { 20, 44, 324 }
	DebuffImmunity[185] = { 44, 324 }
	DebuffImmunity[195] = { 31 }
	DebuffImmunity[197] = { 20, 44, 324 }
	DebuffImmunity[198] = { 20 }
	DebuffImmunity[199] = { 20 }
	DebuffImmunity[201] = { 20 }
	DebuffImmunity[202] = { 20 }
	DebuffImmunity[203] = { 20 }
	DebuffImmunity[204] = { 20 }
	DebuffImmunity[205] = { 20, 31 }
	DebuffImmunity[206] = { 44, 324 }
	DebuffImmunity[207] = { 31 }
	DebuffImmunity[208] = { 31 }
	DebuffImmunity[209] = { 31 }
	DebuffImmunity[210] = { 20, 31 }
	DebuffImmunity[211] = { 20, 31 }
	DebuffImmunity[216] = { 31 }
	DebuffImmunity[217] = { 31 }
	DebuffImmunity[218] = { 31 }
	DebuffImmunity[219] = { 31 }
	DebuffImmunity[220] = { 31 }
	DebuffImmunity[221] = { 31 }
	DebuffImmunity[222] = { 20, 31 }
	DebuffImmunity[225] = { 20 }
	DebuffImmunity[227] = { 31 }
	DebuffImmunity[228] = { 31 }
	DebuffImmunity[229] = { 31 }
	DebuffImmunity[230] = { 31 }
	DebuffImmunity[231] = { 20, 31 }
	DebuffImmunity[232] = { 20, 31 }
	DebuffImmunity[233] = { 20, 31 }
	DebuffImmunity[234] = { 20, 31 }
	DebuffImmunity[235] = { 20, 31 }
	DebuffImmunity[236] = { 20 }
	DebuffImmunity[237] = { 20 }
	DebuffImmunity[238] = { 20 }
	DebuffImmunity[239] = { 20 }
	DebuffImmunity[240] = { 20 }
	DebuffImmunity[241] = { 31 }
	DebuffImmunity[242] = { 31 }
	DebuffImmunity[243] = { 20, 31, 44, 324 }
	DebuffImmunity[244] = { 20 }
	DebuffImmunity[245] = { 20, 24, 31, 323 }
	DebuffImmunity[246] = { 20, 24, 31, 323 }
	DebuffImmunity[247] = { 20, 24, 31, 323 }
	DebuffImmunity[248] = { 20, 24, 31, 323 }
	DebuffImmunity[249] = { 20, 24, 31, 323 }
	DebuffImmunity[250] = { 20, 31 }
	ImmuneToAllNotWhips[253] = true
	DebuffImmunity[256] = { 31 }
	DebuffImmunity[259] = { 20, 31 }
	DebuffImmunity[260] = { 20, 31 }
	DebuffImmunity[261] = { 31 }
	DebuffImmunity[262] = { 20, 31 }
	DebuffImmunity[263] = { 20, 31 }
	DebuffImmunity[264] = { 20, 31 }
	DebuffImmunity[265] = { 31 }
	DebuffImmunity[266] = { 31 }
	DebuffImmunity[267] = { 31 }
	DebuffImmunity[268] = { 20, 69 }
	DebuffImmunity[269] = { 20 }
	DebuffImmunity[270] = { 20 }
	DebuffImmunity[271] = { 20 }
	DebuffImmunity[272] = { 20 }
	DebuffImmunity[273] = { 20 }
	DebuffImmunity[274] = { 20 }
	DebuffImmunity[275] = { 20 }
	DebuffImmunity[276] = { 20 }
	DebuffImmunity[277] = { 20, 24, 323 }
	DebuffImmunity[278] = { 20, 24, 323 }
	DebuffImmunity[279] = { 20, 24, 323 }
	DebuffImmunity[280] = { 20, 24, 323 }
	DebuffImmunity[281] = { 20, 31 }
	DebuffImmunity[282] = { 20, 31 }
	DebuffImmunity[283] = { 20, 31 }
	DebuffImmunity[284] = { 20, 31 }
	DebuffImmunity[285] = { 20, 31 }
	DebuffImmunity[286] = { 20, 31 }
	DebuffImmunity[287] = { 20 }
	ImmuneToAllNotWhips[288] = true
	DebuffImmunity[289] = { 20, 31 }
	DebuffImmunity[290] = { 20, 31, 69 }
	DebuffImmunity[291] = { 20 }
	DebuffImmunity[292] = { 20 }
	DebuffImmunity[293] = { 20 }
	DebuffImmunity[294] = { 20 }
	DebuffImmunity[295] = { 20 }
	DebuffImmunity[296] = { 20 }
	DebuffImmunity[297] = { 31 }
	DebuffImmunity[298] = { 31 }
	DebuffImmunity[671] = { 31 }
	DebuffImmunity[672] = { 31 }
	DebuffImmunity[673] = { 31 }
	DebuffImmunity[674] = { 31 }
	DebuffImmunity[675] = { 31 }
	DebuffImmunity[299] = { 31 }
	DebuffImmunity[300] = { 31 }
	DebuffImmunity[301] = { 31 }
	DebuffImmunity[302] = { 20 }
	DebuffImmunity[303] = { 31 }
	DebuffImmunity[304] = { 20 }
	DebuffImmunity[315] = { 20, 24, 31, 323 }
	DebuffImmunity[316] = { 20, 24, 31, 39, 44, 69, 70, 153, 189, 203, 204, 323, 324 }
	DebuffImmunity[322] = { 20 }
	DebuffImmunity[323] = { 20 }
	DebuffImmunity[324] = { 20 }
	DebuffImmunity[325] = { 20, 31 }
	DebuffImmunity[327] = { 20, 24, 31, 323 }
	DebuffImmunity[328] = { 20, 24, 31, 323 }
	DebuffImmunity[329] = { 20, 24, 323 }
	ImmuneToAllNotWhips[330] = true
	DebuffImmunity[333] = { 20 }
	DebuffImmunity[334] = { 20 }
	DebuffImmunity[335] = { 20 }
	DebuffImmunity[336] = { 20 }
	DebuffImmunity[337] = { 31 }
	DebuffImmunity[338] = { 44, 324 }
	DebuffImmunity[339] = { 44, 324 }
	DebuffImmunity[340] = { 44, 324 }
	DebuffImmunity[341] = { 20, 24, 31, 323 }
	DebuffImmunity[343] = { 44, 324 }
	DebuffImmunity[344] = { 20, 31, 44, 324 }
	DebuffImmunity[345] = { 20, 31, 44, 324 }
	DebuffImmunity[346] = { 20, 31, 44, 324 }
	DebuffImmunity[347] = { 31 }
	DebuffImmunity[351] = { 44, 324 }
	DebuffImmunity[352] = { 20, 31, 44, 324 }
	DebuffImmunity[353] = { 31 }
	DebuffImmunity[354] = { 31 }
	DebuffImmunity[355] = { 31 }
	DebuffImmunity[356] = { 31 }
	DebuffImmunity[357] = { 31 }
	DebuffImmunity[358] = { 31 }
	DebuffImmunity[359] = { 31 }
	DebuffImmunity[360] = { 31 }
	DebuffImmunity[361] = { 31 }
	DebuffImmunity[362] = { 31 }
	DebuffImmunity[363] = { 31 }
	DebuffImmunity[364] = { 31 }
	DebuffImmunity[365] = { 31 }
	DebuffImmunity[366] = { 31 }
	DebuffImmunity[367] = { 31 }
	DebuffImmunity[368] = { 31 }
	DebuffImmunity[369] = { 31 }
	DebuffImmunity[370] = { 31 }
	DebuffImmunity[371] = { 31 }
	DebuffImmunity[372] = { 31 }
	DebuffImmunity[373] = { 31 }
	DebuffImmunity[374] = { 31 }
	DebuffImmunity[375] = { 31 }
	DebuffImmunity[376] = { 31 }
	DebuffImmunity[377] = { 31 }
	DebuffImmunity[378] = { 31 }
	DebuffImmunity[379] = { 31 }
	DebuffImmunity[380] = { 31 }
	DebuffImmunity[381] = { 31 }
	ImmuneToAllNotWhips[384] = true
	DebuffImmunity[387] = { 20, 31 }
	DebuffImmunity[388] = { 20, 31 }
	ImmuneToAll[392] = true
	ImmuneToAllNotWhips[393] = true
	ImmuneToAllNotWhips[394] = true
	ImmuneToAllNotWhips[395] = true
	DebuffImmunity[396] = { 31 }
	DebuffImmunity[397] = { 31 }
	DebuffImmunity[398] = { 31 }
	DebuffImmunity[399] = { 20, 31 }
	DebuffImmunity[400] = { 31 }
	DebuffImmunity[401] = { 31 }
	DebuffImmunity[402] = { 31 }
	DebuffImmunity[403] = { 31 }
	DebuffImmunity[404] = { 31 }
	DebuffImmunity[405] = { 31 }
	DebuffImmunity[406] = { 31 }
	DebuffImmunity[407] = { 31 }
	DebuffImmunity[408] = { 31 }
	DebuffImmunity[412] = { 31 }
	DebuffImmunity[413] = { 31 }
	DebuffImmunity[414] = { 31 }
	DebuffImmunity[418] = { 20, 24, 31, 323 }
	DebuffImmunity[420] = { 31 }
	DebuffImmunity[421] = { 31 }
	ImmuneToAllNotWhips[422] = true
	DebuffImmunity[428] = { 31 }
	DebuffImmunity[431] = { 44, 324 }
	DebuffImmunity[437] = { 31 }
	DebuffImmunity[438] = { 31 }
	ImmuneToAllNotWhips[439] = true
	ImmuneToAll[440] = true
	DebuffImmunity[441] = { 31 }
	DebuffImmunity[442] = { 31 }
	DebuffImmunity[443] = { 31 }
	DebuffImmunity[444] = { 31 }
	DebuffImmunity[445] = { 31 }
	DebuffImmunity[446] = { 31 }
	DebuffImmunity[447] = { 31 }
	DebuffImmunity[448] = { 31 }
	DebuffImmunity[449] = { 20 }
	DebuffImmunity[450] = { 20 }
	DebuffImmunity[451] = { 20 }
	DebuffImmunity[452] = { 20 }
	DebuffImmunity[453] = { 31 }
	ImmuneToAllNotWhips[454] = true
	ImmuneToAllNotWhips[455] = true
	ImmuneToAllNotWhips[456] = true
	ImmuneToAllNotWhips[457] = true
	ImmuneToAllNotWhips[458] = true
	ImmuneToAllNotWhips[459] = true
	DebuffImmunity[461] = { 31 }
	DebuffImmunity[465] = { 31 }
	DebuffImmunity[467] = { 20, 24, 31, 323 }
	DebuffImmunity[471] = { 31, 153 }
	DebuffImmunity[472] = { 31, 153 }
	DebuffImmunity[473] = { 20, 24, 31, 323 }
	DebuffImmunity[474] = { 20, 24, 31, 323 }
	DebuffImmunity[475] = { 20, 24, 31, 323 }
	DebuffImmunity[476] = { 20, 24, 31, 323 }
	DebuffImmunity[477] = { 31 }
	DebuffImmunity[478] = { 31 }
	DebuffImmunity[479] = { 31 }
	DebuffImmunity[480] = { 31 }
	DebuffImmunity[481] = { 20 }
	DebuffImmunity[482] = { 20, 24, 31, 323 }
	DebuffImmunity[483] = { 20, 24, 31, 323 }
	DebuffImmunity[484] = { 31 }
	DebuffImmunity[485] = { 31 }
	DebuffImmunity[486] = { 31 }
	DebuffImmunity[487] = { 31 }
	DebuffImmunity[488] = { 31 }
	ImmuneToAll[491] = true
	ImmuneToAllNotWhips[492] = true
	ImmuneToAllNotWhips[493] = true
	DebuffImmunity[494] = { 31 }
	DebuffImmunity[495] = { 31 }
	DebuffImmunity[496] = { 31 }
	DebuffImmunity[497] = { 31 }
	ImmuneToAllNotWhips[507] = true
	DebuffImmunity[510] = { 31 }
	DebuffImmunity[511] = { 31 }
	DebuffImmunity[512] = { 31 }
	DebuffImmunity[513] = { 31 }
	DebuffImmunity[514] = { 31 }
	DebuffImmunity[515] = { 31 }
	DebuffImmunity[516] = { 31 }
	ImmuneToAllNotWhips[517] = true
	DebuffImmunity[518] = { 31 }
	DebuffImmunity[519] = { 31 }
	DebuffImmunity[520] = { 20, 24, 31, 323 }
	DebuffImmunity[521] = { 20, 24, 31, 39, 44, 69, 70, 153, 189, 203, 204, 323, 324 }
	DebuffImmunity[522] = { 31 }
	DebuffImmunity[523] = { 31 }
	DebuffImmunity[530] = { 20 }
	DebuffImmunity[531] = { 20 }
	DebuffImmunity[533] = { 20, 24, 31, 39, 44, 69, 70, 153, 189, 203, 204, 323, 324 }
	DebuffImmunity[535] = { 20 }
	DebuffImmunity[537] = { 20 }
	DebuffImmunity[538] = { 31 }
	DebuffImmunity[539] = { 31 }
	DebuffImmunity[540] = { 31 }
	DebuffImmunity[541] = { 20, 31 }
	DebuffImmunity[542] = { 31 }
	DebuffImmunity[543] = { 31 }
	DebuffImmunity[544] = { 31 }
	DebuffImmunity[545] = { 31 }
	DebuffImmunity[546] = { 31 }
	DebuffImmunity[547] = { 31 }
	DebuffImmunity[548] = { 31 }
	ImmuneToAll[549] = true
	DebuffImmunity[550] = { 31 }
	DebuffImmunity[551] = { 24, 31, 323 }
	DebuffImmunity[552] = { 31 }
	DebuffImmunity[553] = { 31 }
	DebuffImmunity[554] = { 31 }
	DebuffImmunity[555] = { 31 }
	DebuffImmunity[556] = { 31 }
	DebuffImmunity[557] = { 31 }
	DebuffImmunity[558] = { 31 }
	DebuffImmunity[559] = { 31 }
	DebuffImmunity[560] = { 31 }
	DebuffImmunity[561] = { 31 }
	DebuffImmunity[562] = { 31 }
	DebuffImmunity[563] = { 31 }
	DebuffImmunity[564] = { 31 }
	DebuffImmunity[565] = { 31 }
	DebuffImmunity[566] = { 20, 31 }
	DebuffImmunity[567] = { 20, 31 }
	DebuffImmunity[568] = { 31 }
	DebuffImmunity[569] = { 31 }
	DebuffImmunity[570] = { 31 }
	DebuffImmunity[571] = { 31 }
	DebuffImmunity[572] = { 31 }
	DebuffImmunity[573] = { 31 }
	DebuffImmunity[574] = { 31 }
	DebuffImmunity[575] = { 31 }
	DebuffImmunity[576] = { 31 }
	DebuffImmunity[577] = { 31 }
	DebuffImmunity[578] = { 31 }
	DebuffImmunity[579] = { 31 }
	ImmuneToAll[583] = true
	ImmuneToAll[584] = true
	ImmuneToAll[585] = true
	DebuffImmunity[588] = { 31 }
	DebuffImmunity[589] = { 31 }
	DebuffImmunity[592] = { 31 }
	DebuffImmunity[593] = { 31 }
	DebuffImmunity[594] = { 31 }
	DebuffImmunity[595] = { 31 }
	DebuffImmunity[596] = { 31 }
	DebuffImmunity[597] = { 31 }
	DebuffImmunity[598] = { 31 }
	DebuffImmunity[599] = { 31 }
	DebuffImmunity[600] = { 31 }
	DebuffImmunity[601] = { 31 }
	DebuffImmunity[602] = { 31 }
	DebuffImmunity[603] = { 31 }
	DebuffImmunity[604] = { 31 }
	DebuffImmunity[605] = { 31 }
	DebuffImmunity[606] = { 31 }
	DebuffImmunity[607] = { 31 }
	DebuffImmunity[608] = { 31 }
	DebuffImmunity[609] = { 31 }
	DebuffImmunity[610] = { 31 }
	DebuffImmunity[611] = { 31 }
	DebuffImmunity[612] = { 31 }
	DebuffImmunity[613] = { 31 }
	DebuffImmunity[614] = { 31 }
	DebuffImmunity[615] = { 31 }
	DebuffImmunity[616] = { 31 }
	DebuffImmunity[617] = { 31 }
	DebuffImmunity[618] = { 31 }
	DebuffImmunity[619] = { 31 }
	DebuffImmunity[620] = { 31 }
	DebuffImmunity[621] = { 31 }
	DebuffImmunity[622] = { 31 }
	DebuffImmunity[623] = { 31 }
	DebuffImmunity[624] = { 31 }
	DebuffImmunity[625] = { 31 }
	DebuffImmunity[626] = { 31 }
	DebuffImmunity[627] = { 31 }
	DebuffImmunity[628] = { 31 }
	DebuffImmunity[629] = { 20, 24, 31, 44, 323, 324 }
	DebuffImmunity[631] = { 20, 24, 31, 323 }
	DebuffImmunity[633] = { 31 }
	DebuffImmunity[635] = { 20 }
	DebuffImmunity[636] = { 31 }
	DebuffImmunity[637] = { 31 }
	DebuffImmunity[638] = { 31 }
	DebuffImmunity[639] = { 31 }
	DebuffImmunity[640] = { 31 }
	DebuffImmunity[641] = { 31 }
	DebuffImmunity[642] = { 31 }
	DebuffImmunity[643] = { 31 }
	DebuffImmunity[644] = { 31 }
	DebuffImmunity[645] = { 31 }
	DebuffImmunity[646] = { 31 }
	DebuffImmunity[647] = { 31 }
	DebuffImmunity[648] = { 31 }
	DebuffImmunity[649] = { 31 }
	DebuffImmunity[650] = { 31 }
	DebuffImmunity[651] = { 31 }
	DebuffImmunity[652] = { 31 }
	DebuffImmunity[653] = { 31 }
	DebuffImmunity[654] = { 31 }
	DebuffImmunity[655] = { 31 }
	DebuffImmunity[656] = { 31 }
	DebuffImmunity[657] = { 20, 31 }
	DebuffImmunity[658] = { 20, 31 }
	DebuffImmunity[659] = { 20, 31 }
	DebuffImmunity[660] = { 20, 31 }
	DebuffImmunity[661] = { 31 }
	ImmuneToAllNotWhips[662] = true
	DebuffImmunity[663] = { 31 }
	DebuffImmunity[668] = { 31 }
	DebuffImmunity[669] = { 31 }
	DebuffImmunity[670] = { 31 }
	DebuffImmunity[678] = { 31 }
	DebuffImmunity[679] = { 31 }
	DebuffImmunity[680] = { 31 }
	DebuffImmunity[681] = { 31 }
	DebuffImmunity[682] = { 31 }
	DebuffImmunity[683] = { 31 }
	DebuffImmunity[684] = { 31 }
	DebuffImmunity[677] = { 31 }
	DebuffImmunity[685] = { 31 }
	ImmuneToAll[686] = true
	ImmuneToAll[687] = true
end


--------------------
-- NPC IDs
--------------------

local NPCID = {}
NPCID.Sets = require('Module:Npcinfo/idSets').getValue

---from Terraria.ID.NPCID.NetIdMap
NPCID.NetIdMap = {
	81,
	81,
	1,
	1,
	1,
	1,
	1,
	1,
	1,
	1,
	6,
	6,
	31,
	31,
	77,
	42,
	42,
	176,
	176,
	176,
	176,
	173,
	173,
	183,
	183,
	3,
	3,
	132,
	132,
	186,
	186,
	187,
	187,
	188,
	188,
	189,
	189,
	190,
	191,
	192,
	193,
	194,
	2,
	200,
	200,
	21,
	21,
	201,
	201,
	202,
	202,
	203,
	203,
	223,
	223,
	231,
	231,
	232,
	232,
	233,
	233,
	234,
	234,
	235,
	235
}

---from Terraria.ID.NPCID.FromNetId
NPCID.FromNetId = function(id)
	if (id < 0) then
		return NPCID.NetIdMap[-id]
	else
		return id
	end
end

---from Terraria.NPC.ExcludedFromDeathTally
local function ExcludedFromDeathTally(netID)
	if netID < 0 then
		if netID ~= -5 then
			return netID == -1
		end
	end
	if not NPCID.Sets('ProjectileNPC', netID) then
		return NPCID.Sets('PositiveNPCTypesExcludedFromDeathTally', netID)
	end
	return true
end


--------------------
-- Banners
--------------------

---from Terraria.Item.BannerToItem
local function BannerToItem(banner)
	if not banner then
		return
	end
	if banner <= 0 then
		return
	end
	if (banner == 289) then
		return 5352
	end
	if (banner >= 276) then
		return 4965 + banner - 276
	end
	if (banner >= 274) then
		return 4687 + banner - 274
	end
	if (banner == 273) then
		return 4602
	end
	if (banner >= 267) then
		return 4541 + banner - 267
	end
	if (banner >= 257) then
		return 3837 + banner - 257
	end
	if (banner >= 252) then
		return 3789 + banner - 252
	end
	if (banner == 251) then
		return 3780
	end
	if (banner >= 249) then
		return 3593 + banner - 249
	end
	if (banner >= 186) then
		return 3390 + banner - 186
	end
	if (banner >= 88) then
		return 2897 + banner - 88
	end
	return 1615 + banner - 1
end

---from Terraria.Item.NPCtoBanner
local function npcToBanner(npcid)
	if npcid == 102 then
		return 1
	elseif npcid == 250 then
		return 2
	elseif npcid == 257 then
		return 3
	elseif npcid == 69 then
		return 4
	elseif npcid == 157 then
		return 5
	elseif npcid == 77 then
		return 6
	elseif npcid == 49 then
		return 7
	elseif npcid == 74 then
		return 8
	elseif npcid == 163 or npcid == 238 then
		return 9
	elseif npcid == 241 then
		return 10
	elseif npcid == 242 then
		return 11
	elseif npcid == 239 or npcid == 240 then
		return 12
	elseif npcid == 39 or npcid == 40 or npcid == 41 then
		return 13
	elseif npcid == 46 or npcid == 303 or npcid == 337 or npcid == 540 then
		return 14
	elseif npcid == 120 then
		return 15
	elseif npcid == 85 or npcid == 629 then
		return 16
	elseif npcid == 109 or npcid == 378 then
		return 17
	elseif npcid == 47 then
		return 18
	elseif npcid == 57 then
		return 19
	elseif npcid == 67 then
		return 20
	elseif npcid == 173 then
		return 21
	elseif npcid == 179 then
		return 22
	elseif npcid == 83 then
		return 23
	elseif npcid == 62 or npcid == 66 then
		return 24
	elseif npcid == 2 or npcid == 190 or npcid == 191 or npcid == 192 or npcid == 193 or npcid == 194 or npcid == 317 or npcid == 318 then
		return 25
	elseif npcid == 177 then
		return 26
	elseif npcid == 6 then
		return 27
	elseif npcid == 84 then
		return 28
	elseif npcid == 161 or npcid == 431 then
		return 29
	elseif npcid == 181 then
		return 30
	elseif npcid == 182 then
		return 31
	elseif npcid == 224 then
		return 32
	elseif npcid == 226 then
		return 33
	elseif npcid == 162 then
		return 34
	elseif npcid == 259 or npcid == 260 or npcid == 261 then
		return 35
	elseif npcid == 256 then
		return 36
	elseif npcid == 122 then
		return 37
	elseif npcid == 27 then
		return 38
	elseif npcid == 29 or npcid == 30 then
		return 39
	elseif npcid == 26 then
		return 40
	elseif npcid == 73 then
		return 41
	elseif npcid == 28 then
		return 42
	elseif npcid == 55 or npcid == 230 then
		return 43
	elseif npcid == 48 then
		return 44
	elseif npcid == 60 then
		return 45
	elseif npcid == 174 then
		return 46
	elseif npcid == 42 or npcid == 231 or npcid == 232 or npcid == 233 or npcid == 234 or npcid == 235 then
		return 47
	elseif npcid == 169 then
		return 48
	elseif npcid == 206 then
		return 49
	elseif npcid == 24 or npcid == 25 then
		return 50
	elseif npcid == 63 then
		return 51
	elseif npcid == 236 or npcid == 237 then
		return 52
	elseif npcid == 198 or npcid == 199 then
		return 53
	elseif npcid == 43 then
		return 54
	elseif npcid == 23 then
		return 55
	elseif npcid == 205 then
		return 56
	elseif npcid == 78 then
		return 57
	elseif npcid == 258 then
		return 58
	elseif npcid == 252 then
		return 59
	elseif npcid == 170 or npcid == 171 or npcid == 180 then
		return 60
	elseif npcid == 58 then
		return 61
	elseif npcid == 212 then
		return 62
	elseif npcid == 75 then
		return 63
	elseif npcid == 223 then
		return 64
	elseif npcid == 253 then
		return 65
	elseif npcid == 65 then
		return 66
	elseif npcid == 21 or npcid == 201 or npcid == 202 or npcid == 203 or npcid == 322 or npcid == 323 or npcid == 324 or npcid == 449 or npcid == 450 or npcid == 451 or npcid == 452 then
		return 67
	elseif npcid == 32 or npcid == 33 then
		return 68
	elseif npcid == 1 or npcid == 302 or npcid == 333 or npcid == 334 or npcid == 335 or npcid == 336 then
		return 69
	elseif npcid == 185 then
		return 70
	elseif npcid == 164 or npcid == 165 then
		return 71
	elseif npcid == 254 or npcid == 255 then
		return 72
	elseif npcid == 166 then
		return 73
	elseif npcid == 153 then
		return 74
	elseif npcid == 141 then
		return 75
	elseif npcid == 225 then
		return 76
	elseif npcid == 86 then
		return 77
	elseif npcid == 158 or npcid == 159 then
		return 78
	elseif npcid == 61 then
		return 79
	elseif npcid == 195 or npcid == 196 then
		return 80
	elseif npcid == 104 then
		return 81
	elseif npcid == 155 then
		return 82
	elseif npcid == 98 or npcid == 99 or npcid == 100 then
		return 83
	elseif npcid == 10 or npcid == 11 or npcid == 12 or npcid == 95 or npcid == 96 or npcid == 97 then
		return 84
	elseif npcid == 82 then
		return 85
	elseif npcid == 87 or npcid == 88 or npcid == 89 or npcid == 90 or npcid == 91 or npcid == 92 then
		return 86
	elseif npcid == 3 or npcid == 132 or npcid == 186 or npcid == 187 or npcid == 188 or npcid == 189 or npcid == 200 or npcid == 319 or npcid == 320 or npcid == 321 or npcid == 331 or npcid == 332 or npcid == 430 or npcid == 432 or npcid == 433 or npcid == 434 or npcid == 435 or npcid == 436 or npcid == 590 or npcid == 591 or npcid == 632 then
		return 87
	elseif npcid == 175 then
		return 88
	elseif npcid == 197 then
		return 89
	elseif npcid == 273 or npcid == 274 or npcid == 275 or npcid == 276 then
		return 91
	elseif npcid == 379 then
		return 92
	elseif npcid == 438 then
		return 93
	elseif npcid == 287 then
		return 95
	elseif npcid == 101 then
		return 96
	elseif npcid == 217 then
		return 97
	elseif npcid == 168 then
		return 98
	elseif npcid == -1 or npcid == 81 then
		return 99
	elseif npcid == 94 or npcid == 112 then
		return 100
	elseif npcid == 183 then
		return 101
	elseif npcid == 34 then
		return 102
	elseif npcid == 218 then
		return 103
	elseif npcid == 7 or npcid == 8 or npcid == 9 then
		return 104
	elseif npcid == 285 or npcid == 286 then
		return 105
	elseif npcid == 52 then
		return 106
	elseif npcid == 71 then
		return 107
	elseif npcid == 288 then
		return 108
	elseif npcid == 350 then
		return 109
	elseif npcid == 347 then
		return 110
	elseif npcid == 251 then
		return 111
	elseif npcid == 352 then
		return 112
	elseif npcid == 316 then
		return 113
	elseif npcid == 93 then
		return 114
	elseif npcid == 289 then
		return 115
	elseif npcid == 152 then
		return 116
	elseif npcid == 342 then
		return 117
	elseif npcid == 111 then
		return 118
	elseif npcid == 315 then
		return 120
	elseif npcid == 277 or npcid == 278 or npcid == 279 or npcid == 280 then
		return 121
	elseif npcid == 329 then
		return 122
	elseif npcid == 304 then
		return 123
	elseif npcid == 150 then
		return 124
	elseif npcid == 243 then
		return 125
	elseif npcid == 147 then
		return 126
	elseif npcid == 268 then
		return 127
	elseif npcid == 137 then
		return 128
	elseif npcid == 138 then
		return 129
	elseif npcid == 51 then
		return 130
	elseif npcid == 351 then
		return 132
	elseif npcid == 219 then
		return 133
	elseif npcid == 151 then
		return 134
	elseif npcid == 59 then
		return 135
	elseif npcid == 381 then
		return 136
	elseif npcid == 388 then
		return 137
	elseif npcid == 386 then
		return 138
	elseif npcid == 389 then
		return 139
	elseif npcid == 385 then
		return 140
	elseif npcid == 383 or npcid == 384 then
		return 141
	elseif npcid == 382 then
		return 142
	elseif npcid == 390 then
		return 143
	elseif npcid == 387 then
		return 144
	elseif npcid == 144 then
		return 145
	elseif npcid == -5 or npcid == 16 then
		return 146
	elseif npcid == 283 or npcid == 284 then
		return 147
	elseif npcid == 348 or npcid == 349 then
		return 148
	elseif npcid == 290 then
		return 149
	elseif npcid == 148 or npcid == 149 then
		return 150
	elseif npcid == -4 then
		return 151
	elseif npcid == 330 then
		return 152
	elseif npcid == 140 then
		return 153
	elseif npcid == 341 then
		return 154
	elseif npcid == 281 or npcid == 282 then
		return 156
	elseif npcid == 244 then
		return 157
	elseif npcid == 301 then
		return 158
	elseif npcid == 172 then
		return 160
	elseif npcid == 269 or npcid == 270 or npcid == 271 or npcid == 272 then
		return 161
	elseif npcid == 305 or npcid == 306 or npcid == 307 or npcid == 308 or npcid == 309 or npcid == 310 or npcid == 311 or npcid == 312 or npcid == 313 or npcid == 314 then
		return 162
	elseif npcid == 391 then
		return 163
	elseif npcid == 110 then
		return 164
	elseif npcid == 293 then
		return 165
	elseif npcid == 291 then
		return 166
	elseif npcid == -2 or npcid == 121 then
		return 167
	elseif npcid == 56 then
		return 168
	elseif npcid == 145 then
		return 169
	elseif npcid == 143 then
		return 170
	elseif npcid == 184 then
		return 171
	elseif npcid == 204 then
		return 172
	elseif npcid == 326 then
		return 173
	elseif npcid == 221 then
		return 174
	elseif npcid == 292 then
		return 175
	elseif npcid == 53 then
		return 176
	elseif npcid == 45 or npcid == 665 then
		return 177
	elseif npcid == 44 then
		return 178
	elseif npcid == 167 then
		return 179
	elseif npcid == 380 then
		return 180
	elseif npcid == 343 then
		return 184
	elseif npcid == 338 or npcid == 339 or npcid == 340 then
		return 185
	elseif npcid == -6 then
		return 90
	elseif npcid == -3 then
		return 119
	elseif npcid == -10 then
		return 131
	elseif npcid == -7 then
		return 155
	elseif npcid == -8 then
		return 159
	elseif npcid == -9 then
		return 183
	elseif npcid == 471 or npcid == 472 then
		return 186
	elseif npcid == 498 or npcid == 499 or npcid == 500 or npcid == 501 or npcid == 502 or npcid == 503 or npcid == 504 or npcid == 505 or npcid == 506 then
		return 187
	elseif npcid == 496 or npcid == 497 then
		return 188
	elseif npcid == 494 or npcid == 495 then
		return 189
	elseif npcid == 462 then
		return 190
	elseif npcid == 461 then
		return 191
	elseif npcid == 468 then
		return 192
	elseif npcid == 477 or npcid == 478 or npcid == 479 then
		return 193
	elseif npcid == 469 then
		return 195
	elseif npcid == 460 then
		return 196
	elseif npcid == 466 then
		return 197
	elseif npcid == 467 then
		return 198
	elseif npcid == 463 then
		return 199
	elseif npcid == 480 then
		return 201
	elseif npcid == 481 then
		return 202
	elseif npcid == 483 then
		return 203
	elseif npcid == 482 then
		return 204
	elseif npcid == 489 then
		return 205
	elseif npcid == 490 then
		return 206
	elseif npcid == 513 or npcid == 514 or npcid == 515 then
		return 207
	elseif npcid == 510 or npcid == 511 or npcid == 512 then
		return 208
	elseif npcid == 509 or npcid == 581 then
		return 209
	elseif npcid == 508 or npcid == 580 then
		return 210
	elseif npcid == 524 or npcid == 525 or npcid == 526 or npcid == 527 then
		return 211
	elseif npcid == 528 or npcid == 529 then
		return 212
	elseif npcid == 533 then
		return 213
	elseif npcid == 532 then
		return 214
	elseif npcid == 530 or npcid == 531 then
		return 215
	elseif npcid == 411 then
		return 216
	elseif npcid == 402 or npcid == 403 or npcid == 404 then
		return 217
	elseif npcid == 407 or npcid == 408 then
		return 218
	elseif npcid == 409 or npcid == 410 then
		return 219
	elseif npcid == 406 then
		return 220
	elseif npcid == 405 then
		return 221
	elseif npcid == 418 then
		return 222
	elseif npcid == 417 then
		return 223
	elseif npcid == 412 or npcid == 413 or npcid == 414 then
		return 224
	elseif npcid == 416 or npcid == 518 then
		return 225
	elseif npcid == 415 or npcid == 516 then
		return 226
	elseif npcid == 419 then
		return 227
	elseif npcid == 424 then
		return 228
	elseif npcid == 421 then
		return 229
	elseif npcid == 420 then
		return 230
	elseif npcid == 423 then
		return 231
	elseif npcid == 428 then
		return 232
	elseif npcid == 426 then
		return 233
	elseif npcid == 427 then
		return 234
	elseif npcid == 429 then
		return 235
	elseif npcid == 425 then
		return 236
	elseif npcid == 216 then
		return 237
	elseif npcid == 214 then
		return 238
	elseif npcid == 213 then
		return 239
	elseif npcid == 215 then
		return 240
	elseif npcid == 520 then
		return 241
	elseif npcid == 156 then
		return 242
	elseif npcid == 64 then
		return 243
	elseif npcid == 103 then
		return 244
	elseif npcid == 79 then
		return 245
	elseif npcid == 80 then
		return 246
	elseif npcid == 31 or npcid == 294 or npcid == 295 or npcid == 296 then
		return 247
	elseif npcid == 154 then
		return 248
	elseif npcid == 537 then
		return 249
	elseif npcid == 220 then
		return 250
	elseif npcid == 541 then
		return 251
	elseif npcid == 542 then
		return 252
	elseif npcid == 543 then
		return 253
	elseif npcid == 544 then
		return 254
	elseif npcid == 545 then
		return 255
	elseif npcid == 546 then
		return 256
	elseif npcid == 555 or npcid == 556 or npcid == 557 then
		return 257
	elseif npcid == 552 or npcid == 553 or npcid == 554 then
		return 258
	elseif npcid == 566 or npcid == 567 then
		return 259
	elseif npcid == 570 or npcid == 571 then
		return 260
	elseif npcid == 574 or npcid == 575 then
		return 261
	elseif npcid == 572 or npcid == 573 then
		return 262
	elseif npcid == 568 or npcid == 569 then
		return 263
	elseif npcid == 558 or npcid == 559 or npcid == 560 then
		return 264
	elseif npcid == 561 or npcid == 562 or npcid == 563 then
		return 265
	elseif npcid == 578 then
		return 266
	elseif npcid == 536 then
		return 267
	elseif npcid == 586 then
		return 268
	elseif npcid == 587 then
		return 269
	elseif npcid == 619 then
		return 270
	elseif npcid == 621 or npcid == 622 or npcid == 623 then
		return 271
	elseif npcid == 620 then
		return 272
	elseif npcid == 618 then
		return 273
	elseif npcid == 628 then
		return 274
	elseif npcid == 624 then
		return 275
	elseif npcid == 631 then
		return 276
	elseif npcid == 630 then
		return 277
	elseif npcid == 635 then
		return 278
	elseif npcid == 634 then
		return 279
	elseif npcid == 582 then
		return 280
	elseif npcid == 464 then
		return 281
	elseif npcid == 465 then
		return 282
	elseif npcid == 470 then
		return 283
	elseif npcid == 473 then
		return 284
	elseif npcid == 474 then
		return 285
	elseif npcid == 475 then
		return 286
	elseif npcid == 176 then
		return 287
	elseif npcid == 133 then
		return 288
	elseif npcid == 676 then
		return 289
	else
		return 0
	end
end


--------------------
-- Sound IDs
--------------------

---from Terraria.ID.SoundID.CreateTrackable
local function SoundID_CreateTrackable(name, variations)
	variations = variations or 1
	local str
	if variations == 1 then
		str = name
	else
		for i = 0, variations - 1 do
			if str then
				str = str .. ', ' .. name .. '_' .. i
			else
				str = name .. '_' .. i
			end
		end
	end
	return str
end

---from Terraria.ID.SoundID
local SoundID = {}
do
	SoundID.AchievementComplete = SoundID_CreateTrackable("achievement_complete")
	SoundID.BlizzardInsideBuildingLoop = SoundID_CreateTrackable("blizzard_inside_building_loop")
	SoundID.BlizzardStrongLoop = SoundID_CreateTrackable("blizzard_strong_loop")
	SoundID.LiquidsHoneyWater = SoundID_CreateTrackable("liquids_honey_water", 3)
	SoundID.LiquidsHoneyLava = SoundID_CreateTrackable("liquids_honey_lava", 3)
	SoundID.LiquidsWaterLava = SoundID_CreateTrackable("liquids_water_lava", 3)
	SoundID.DD2_BallistaTowerShot = SoundID_CreateTrackable("dd2_ballista_tower_shot", 3)
	SoundID.DD2_ExplosiveTrapExplode = SoundID_CreateTrackable("dd2_explosive_trap_explode", 3)
	SoundID.DD2_FlameburstTowerShot = SoundID_CreateTrackable("dd2_flameburst_tower_shot", 3)
	SoundID.DD2_LightningAuraZap = SoundID_CreateTrackable("dd2_lightning_aura_zap", 4)
	SoundID.DD2_DefenseTowerSpawn = SoundID_CreateTrackable("dd2_defense_tower_spawn")
	SoundID.DD2_BetsyDeath = SoundID_CreateTrackable("dd2_betsy_death", 3)
	SoundID.DD2_BetsyFireballShot = SoundID_CreateTrackable("dd2_betsy_fireball_shot", 3)
	SoundID.DD2_BetsyFireballImpact = SoundID_CreateTrackable("dd2_betsy_fireball_impact", 3)
	SoundID.DD2_BetsyFlameBreath = SoundID_CreateTrackable("dd2_betsy_flame_breath")
	SoundID.DD2_BetsyFlyingCircleAttack = SoundID_CreateTrackable("dd2_betsy_flying_circle_attack")
	SoundID.DD2_BetsyHurt = SoundID_CreateTrackable("dd2_betsy_hurt", 3)
	SoundID.DD2_BetsyScream = SoundID_CreateTrackable("dd2_betsy_scream")
	SoundID.DD2_BetsySummon = SoundID_CreateTrackable("dd2_betsy_summon", 3)
	SoundID.DD2_BetsyWindAttack = SoundID_CreateTrackable("dd2_betsy_wind_attack", 3)
	SoundID.DD2_DarkMageAttack = SoundID_CreateTrackable("dd2_dark_mage_attack", 3)
	SoundID.DD2_DarkMageCastHeal = SoundID_CreateTrackable("dd2_dark_mage_cast_heal", 3)
	SoundID.DD2_DarkMageDeath = SoundID_CreateTrackable("dd2_dark_mage_death", 3)
	SoundID.DD2_DarkMageHealImpact = SoundID_CreateTrackable("dd2_dark_mage_heal_impact", 3)
	SoundID.DD2_DarkMageHurt = SoundID_CreateTrackable("dd2_dark_mage_hurt", 3)
	SoundID.DD2_DarkMageSummonSkeleton = SoundID_CreateTrackable("dd2_dark_mage_summon_skeleton", 3)
	SoundID.DD2_DrakinBreathIn = SoundID_CreateTrackable("dd2_drakin_breath_in", 3)
	SoundID.DD2_DrakinDeath = SoundID_CreateTrackable("dd2_drakin_death", 3)
	SoundID.DD2_DrakinHurt = SoundID_CreateTrackable("dd2_drakin_hurt", 3)
	SoundID.DD2_DrakinShot = SoundID_CreateTrackable("dd2_drakin_shot", 3)
	SoundID.DD2_GoblinDeath = SoundID_CreateTrackable("dd2_goblin_death", 3)
	SoundID.DD2_GoblinHurt = SoundID_CreateTrackable("dd2_goblin_hurt", 6)
	SoundID.DD2_GoblinScream = SoundID_CreateTrackable("dd2_goblin_scream", 3)
	SoundID.DD2_GoblinBomberDeath = SoundID_CreateTrackable("dd2_goblin_bomber_death", 3)
	SoundID.DD2_GoblinBomberHurt = SoundID_CreateTrackable("dd2_goblin_bomber_hurt", 3)
	SoundID.DD2_GoblinBomberScream = SoundID_CreateTrackable("dd2_goblin_bomber_scream", 3)
	SoundID.DD2_GoblinBomberThrow = SoundID_CreateTrackable("dd2_goblin_bomber_throw", 3)
	SoundID.DD2_JavelinThrowersAttack = SoundID_CreateTrackable("dd2_javelin_throwers_attack", 3)
	SoundID.DD2_JavelinThrowersDeath = SoundID_CreateTrackable("dd2_javelin_throwers_death", 3)
	SoundID.DD2_JavelinThrowersHurt = SoundID_CreateTrackable("dd2_javelin_throwers_hurt", 3)
	SoundID.DD2_JavelinThrowersTaunt = SoundID_CreateTrackable("dd2_javelin_throwers_taunt", 3)
	SoundID.DD2_KoboldDeath = SoundID_CreateTrackable("dd2_kobold_death", 3)
	SoundID.DD2_KoboldExplosion = SoundID_CreateTrackable("dd2_kobold_explosion", 3)
	SoundID.DD2_KoboldHurt = SoundID_CreateTrackable("dd2_kobold_hurt", 3)
	SoundID.DD2_KoboldIgnite = SoundID_CreateTrackable("dd2_kobold_ignite")
	SoundID.DD2_KoboldIgniteLoop = SoundID_CreateTrackable("dd2_kobold_ignite_loop")
	SoundID.DD2_KoboldScreamChargeLoop = SoundID_CreateTrackable("dd2_kobold_scream_charge_loop")
	SoundID.DD2_KoboldFlyerChargeScream = SoundID_CreateTrackable("dd2_kobold_flyer_charge_scream", 3)
	SoundID.DD2_KoboldFlyerDeath = SoundID_CreateTrackable("dd2_kobold_flyer_death", 3)
	SoundID.DD2_KoboldFlyerHurt = SoundID_CreateTrackable("dd2_kobold_flyer_hurt", 3)
	SoundID.DD2_LightningBugDeath = SoundID_CreateTrackable("dd2_lightning_bug_death", 3)
	SoundID.DD2_LightningBugHurt = SoundID_CreateTrackable("dd2_lightning_bug_hurt", 3)
	SoundID.DD2_LightningBugZap = SoundID_CreateTrackable("dd2_lightning_bug_zap", 3)
	SoundID.DD2_OgreAttack = SoundID_CreateTrackable("dd2_ogre_attack", 3)
	SoundID.DD2_OgreDeath = SoundID_CreateTrackable("dd2_ogre_death", 3)
	SoundID.DD2_OgreGroundPound = SoundID_CreateTrackable("dd2_ogre_ground_pound")
	SoundID.DD2_OgreHurt = SoundID_CreateTrackable("dd2_ogre_hurt", 3)
	SoundID.DD2_OgreRoar = SoundID_CreateTrackable("dd2_ogre_roar", 3)
	SoundID.DD2_OgreSpit = SoundID_CreateTrackable("dd2_ogre_spit")
	SoundID.DD2_SkeletonDeath = SoundID_CreateTrackable("dd2_skeleton_death", 3)
	SoundID.DD2_SkeletonHurt = SoundID_CreateTrackable("dd2_skeleton_hurt", 3)
	SoundID.DD2_SkeletonSummoned = SoundID_CreateTrackable("dd2_skeleton_summoned")
	SoundID.DD2_WitherBeastAuraPulse = SoundID_CreateTrackable("dd2_wither_beast_aura_pulse", 2)
	SoundID.DD2_WitherBeastCrystalImpact = SoundID_CreateTrackable("dd2_wither_beast_crystal_impact", 3)
	SoundID.DD2_WitherBeastDeath = SoundID_CreateTrackable("dd2_wither_beast_death", 3)
	SoundID.DD2_WitherBeastHurt = SoundID_CreateTrackable("dd2_wither_beast_hurt", 3)
	SoundID.DD2_WyvernDeath = SoundID_CreateTrackable("dd2_wyvern_death", 3)
	SoundID.DD2_WyvernHurt = SoundID_CreateTrackable("dd2_wyvern_hurt", 3)
	SoundID.DD2_WyvernScream = SoundID_CreateTrackable("dd2_wyvern_scream", 3)
	SoundID.DD2_WyvernDiveDown = SoundID_CreateTrackable("dd2_wyvern_dive_down", 3)
	SoundID.DD2_EtherianPortalDryadTouch = SoundID_CreateTrackable("dd2_etherian_portal_dryad_touch")
	SoundID.DD2_EtherianPortalIdleLoop = SoundID_CreateTrackable("dd2_etherian_portal_idle_loop")
	SoundID.DD2_EtherianPortalOpen = SoundID_CreateTrackable("dd2_etherian_portal_open")
	SoundID.DD2_EtherianPortalSpawnEnemy = SoundID_CreateTrackable("dd2_etherian_portal_spawn_enemy", 3)
	SoundID.DD2_CrystalCartImpact = SoundID_CreateTrackable("dd2_crystal_cart_impact", 3)
	SoundID.DD2_DefeatScene = SoundID_CreateTrackable("dd2_defeat_scene")
	SoundID.DD2_WinScene = SoundID_CreateTrackable("dd2_win_scene")
	SoundID.DD2_BookStaffCast = SoundID_CreateTrackable("dd2_book_staff_cast", 3)
	SoundID.DD2_BookStaffTwisterLoop = SoundID_CreateTrackable("dd2_book_staff_twister_loop")
	SoundID.DD2_GhastlyGlaiveImpactGhost = SoundID_CreateTrackable("dd2_ghastly_glaive_impact_ghost", 3)
	SoundID.DD2_GhastlyGlaivePierce = SoundID_CreateTrackable("dd2_ghastly_glaive_pierce", 3)
	SoundID.DD2_MonkStaffGroundImpact = SoundID_CreateTrackable("dd2_monk_staff_ground_impact", 3)
	SoundID.DD2_MonkStaffGroundMiss = SoundID_CreateTrackable("dd2_monk_staff_ground_miss", 3)
	SoundID.DD2_MonkStaffSwing = SoundID_CreateTrackable("dd2_monk_staff_swing", 4)
	SoundID.DD2_PhantomPhoenixShot = SoundID_CreateTrackable("dd2_phantom_phoenix_shot", 3)
	SoundID.DD2_SkyDragonsFuryCircle = SoundID_CreateTrackable("dd2_sky_dragons_fury_circle", 3)
	SoundID.DD2_SkyDragonsFuryShot = SoundID_CreateTrackable("dd2_sky_dragons_fury_shot", 3)
	SoundID.DD2_SkyDragonsFurySwing = SoundID_CreateTrackable("dd2_sky_dragons_fury_swing", 4)
	SoundID.DD2_BetsysWrathShot = SoundID.DD2_BetsyFireballShot
	SoundID.DD2_BetsysWrathImpact = SoundID.DD2_BetsyFireballImpact
	SoundID.LucyTheAxeTalk = SoundID_CreateTrackable("lucyaxe_talk", 5)
	SoundID.DeerclopsHit = SoundID_CreateTrackable("deerclops_hit", 3)
	SoundID.DeerclopsDeath = SoundID_CreateTrackable("deerclops_death")
	SoundID.DeerclopsScream = SoundID_CreateTrackable("deerclops_scream", 3)
	SoundID.DeerclopsIceAttack = SoundID_CreateTrackable("deerclops_ice_attack", 3)
	SoundID.DeerclopsRubbleAttack = SoundID_CreateTrackable("deerclops_rubble_attack")
	SoundID.DeerclopsStep = SoundID_CreateTrackable("deerclops_step")
	SoundID.ChesterOpen = SoundID_CreateTrackable("chester_open", 2)
	SoundID.ChesterClose = SoundID_CreateTrackable("chester_close", 2)
	SoundID.AbigailSummon = SoundID_CreateTrackable("abigail_summon")
	SoundID.AbigailCry = SoundID_CreateTrackable("abigail_cry", 3)
	SoundID.AbigailAttack = SoundID_CreateTrackable("abigail_attack")
	SoundID.AbigailUpgrade = SoundID_CreateTrackable("abigail_upgrade", 3)
	SoundID.GlommerBounce = SoundID_CreateTrackable("glommer_bounce", 2)
	SoundID.DSTMaleHurt = SoundID_CreateTrackable("dst_male_hit", 3)
	SoundID.DSTFemaleHurt = SoundID_CreateTrackable("dst_female_hit", 3)
	SoundID.JimsDrone = SoundID_CreateTrackable("Drone")
end
for i = 1, 57 do
	SoundID['NPCHit' .. i] = 'NPC_Hit_' .. i
end
for i = 1, 66 do
	SoundID['NPCDeath' .. i] = 'NPC_Killed_' .. i
end


--------------------
-- Main, NPC, GameModeData
--------------------

local Main = {}
Main.zenithWorld = false
Main.getGoodWorld = false
Main.tenthAnniversaryWorld = false
Main.remixWorld = false
Main.hardMode = false

local NPC = {}
NPC.activeTime = 750
NPC.downedPlantBoss = false
NPC.downedMechBossAny = false
NPC.downedGolemBoss = false
-- from Terraria.NPC.AnyNPCs
NPC.AnyNPCs = function(type)
	return false
end

---from Terraria.DataStructures.GameModeData
local GameModeData = {}
do
	GameModeData.NormalMode = {
		Id = 0,
		EnemyMaxLifeMultiplier = 1,
		EnemyDamageMultiplier = 1,
		DebuffTimeMultiplier = 1,
		KnockbackToEnemiesMultiplier = 1,
		TownNPCDamageMultiplier = 1,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 1
	}
	GameModeData.ExpertMode = {
		Id = 1,
		IsExpertMode = true,
		EnemyMaxLifeMultiplier = 2,
		EnemyDamageMultiplier = 2,
		DebuffTimeMultiplier = 2,
		KnockbackToEnemiesMultiplier = 0.9,
		TownNPCDamageMultiplier = 1.5,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 2.5
	}
	GameModeData.MasterMode = {
		Id = 2,
		IsExpertMode = true,
		IsMasterMode = true,
		EnemyMaxLifeMultiplier = 3,
		EnemyDamageMultiplier = 3,
		DebuffTimeMultiplier = 2.5,
		KnockbackToEnemiesMultiplier = 0.8,
		TownNPCDamageMultiplier = 1.75,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 2.5
	}
	GameModeData.CreativeMode = {
		Id = 3,
		IsJourneyMode = true,
		EnemyMaxLifeMultiplier = 1,
		EnemyDamageMultiplier = 1,
		DebuffTimeMultiplier = 1,
		KnockbackToEnemiesMultiplier = 1,
		TownNPCDamageMultiplier = 2,
		EnemyDefenseMultiplier = 1,
		EnemyMoneyDropMultiplier = 1
	}
end


--------------------
-- NPC instance
--------------------

local this = {}

---from Terraria.NPC.SpawnWithHigherTime
local function SpawnWithHigherTime(timeMult)
	this.timeLeft = NPC.activeTime * timeMult
end

---from Terraria.NPC.LazySetLiquidMovementDD2
local function LazySetLiquidMovementDD2()
	this.waterMovementSpeed = 1
	this.lavaMovementSpeed = 1
	this.honeyMovementSpeed = 1
end

---from Terraria.NPC.BannerID
local function BannerID()
	if (this.netID >= -10) then
		return this.netID
	end
	return this.type
end

---from Terraria.NPC.GetStatScalingFactors
local function GetStatScalingFactors(numPlayers)
	local balance = 1
	local boost = 0.35
	for i = 2, numPlayers do
		balance = balance + boost
		boost = boost + (1 - boost) / 3
	end
	if (balance > 8) then
		balance = (balance * 2 + 8) / 3
	end
	if (balance > 1000) then
		balance = 1000
	end
	return balance, boost
end

---from Terraria.NPC.ScaleStats_ApplyExpertTweaks
local function ScaleStats_ApplyExpertTweaks()
	local flag
	if this.type < 0 then
		flag =  false
	else
		flag = NPCID.Sets('ProjectileNPC', this.type)
	end
	local flag2 = not NPCID.Sets('DontDoHardmodeScaling', this.type)
	if (Main.getGoodWorld) then
		if ((this.type == 24 or this.type == 25) and NPC.AnyNPCs(113)) then
			flag2 = false;
		end
		if ((this.type == 32 or this.type == 33) and NPC.AnyNPCs(35)) then
			flag2 = false;
		end
		if (this.type == 6 and NPC.AnyNPCs(13)) then
			flag2 = false;
		end
	end
	if (flag2 and Main.hardMode and not this.boss and this.lifeMax < 1000) then
		local num = this.damage + this.defense + math.floor(this.lifeMax / 4)
		if (num == 0) then
			num = 1
		end
		local num1 = 80
		if (NPC.downedPlantBoss) then
			num1 = num1 + 20
		end
		if (num < num1) then
			local single = math.floor(num1 / num)  -- float single = (float)(num1 / num);  //int num1, num
			this.damage = math.floor((this.damage * single) * 0.9)
			if (not flag) then
				this.defense = math.floor(this.defense * single)
				this.lifeMax = math.floor((this.lifeMax * single) * 1.1)
				this.value = math.floor((this.value * single) * 0.8)
			end
		end
	end
	if (this.type == 210 or this.type == 211) then
		this.damage = math.floor(this.damage * 0.6)
		this.lifeMax = math.floor(this.lifeMax * 0.8)
		this.defense = math.floor(this.defense * 0.8)
	end
end

---from Terraria.NPC.ScaleStats_ApplyGameMode
local function ScaleStats_ApplyGameMode(gameModeData)
	local flag
	if this.type < 0 then
		flag =  false
	else
		flag = NPCID.Sets('ProjectileNPC', this.type)
	end
	local num = 0
	if ((not gameModeData.IsJourneyMode) and Main.getGoodWorld) then
		num = num + 1
	end
	if not flag then
		this.value = (math.floor(this.value * (gameModeData.EnemyMoneyDropMultiplier + num)))
		this.lifeMax = math.floor(this.lifeMax * (gameModeData.EnemyMaxLifeMultiplier + num))
	end
	this.damage = math.floor(this.damage * (gameModeData.EnemyDamageMultiplier + num))
	this.knockBackResist = this.knockBackResist * gameModeData.KnockbackToEnemiesMultiplier
end

---from Terraria.NPC.ScaleStats_ApplyMultiplayerStats
local function ScaleStats_ApplyMultiplayerStats(numPlayers, balance, boost, bossAdjustment)
	if (this.type == 5) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * bossAdjustment)
	end
	if (this.type == 4) then
		this.lifeMax = math.floor(this.lifeMax * 0.65 * balance * bossAdjustment)
	end
	if (this.type >= 13 and this.type <= 15) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		if (this.type == 13) then
			this.damage = math.floor(this.damage * 1.1)
		end
		if (this.type == 14) then
			this.damage = math.floor(this.damage * 0.8)
		end
		if (this.type == 15) then
			this.damage = math.floor(this.damage * 0.8)
		end
		this.scale = this.scale * 1.2
		this.defense = this.defense + 2
	end
	if (this.type == 266 or this.type == 267) then
		this.lifeMax = math.floor(this.lifeMax * 0.85 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.9)
		this.scale = this.scale * 1.05
		local single = 1
		while (single < balance) do
			if (this.knockBackResist >= 0.1) then
				this.knockBackResist = this.knockBackResist * 0.8
				single = single + 0.34
			else
				this.knockBackResist = 0
				break
			end
		end
	end
	if (this.type == 50) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.8)
	end
	if (this.type == 471) then
		this.lifeMax = math.floor(this.lifeMax * 0.85 * (balance * 2 + 1) / 3)
	end
	if (this.type == 472) then
		this.lifeMax = math.floor(this.lifeMax * 0.85 * (balance + 1) / 2)
		this.damage = math.floor(this.damage * 0.8)
	end
	if (this.type == 222) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.9)
	end
	if (this.type == 210 or this.type == 211) then
		this.lifeMax = math.floor(this.lifeMax * 0.75)
	end
	if (this.type == 35) then
		this.lifeMax = math.floor(this.lifeMax * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.1)
	elseif (this.type == 36) then
		this.lifeMax = math.floor(this.lifeMax * 1.3 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.1)
	end
	if (this.type == 668) then
		this.lifeMax = math.floor(this.lifeMax * 0.85 * balance * bossAdjustment)
	end
	if (this.type == 113 or this.type == 114) then
		this.defense = this.defense + 6
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.5)
	elseif (this.type == 115) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance)
		if (numPlayers > 4) then
			this.knockBackResist = 0
		elseif (numPlayers > 1) then
			this.knockBackResist = this.knockBackResist * (1 - boost)
		end
		this.defense = this.defense + 6
	elseif (this.type == 116) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance)
		if (numPlayers > 4) then
			this.knockBackResist = 0
		elseif (numPlayers > 1) then
			this.knockBackResist = this.knockBackResist * (1 - boost)
		end
	elseif (this.type == 117 or this.type == 118 or this.type == 119) then
		this.lifeMax = math.floor(this.lifeMax * 0.8)
	end
	if (this.type == 657) then
		this.lifeMax = math.floor(this.lifeMax * 0.8 * balance * bossAdjustment)
	end
	if (this.type >= 658 and this.type <= 660) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
	end
	if (this.type >= 134 and this.type <= 136) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		if (this.type == 134) then
			this.damage = this.damage * 2
		end
		if (this.type == 135) then
			this.damage = math.floor(this.damage * 0.85)
		end
		if (this.type == 136) then
			this.damage = math.floor(this.damage * 0.85)
		end
		this.scale = this.scale * 1.05
	elseif (this.type == 139) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * (balance * 2 + 1) / 3)
		this.damage = math.floor(this.damage * 0.8)
		this.scale = this.scale * 1.05
	end
	if (this.type >= 127 and this.type <= 131) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.85)
	end
	if (this.type >= 125 and this.type <= 126) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.85)
	end
	if (this.type == 262) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.15)
	elseif (this.type == 264) then
		this.lifeMax = math.floor(this.lifeMax * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.15)
	end
	if (this.type == 636) then
		this.lifeMax = math.floor(this.lifeMax * 0.7 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 1.15)
	end
	if (this.type >= 245 and this.type <= 249) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.8)
	end
	if (this.type == 370) then
		this.lifeMax = math.floor(this.lifeMax * 0.65 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.7)
	elseif (this.type == 371 or this.type == 372 or this.type == 373) then
		if (this.type ~= 371) then
			this.lifeMax = math.floor(this.lifeMax * 0.75)
		end
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type == 439 or this.type == 440 or this.type >= 454 and this.type <= 459 or this.type == 522 or this.type == 523) then
		if (this.type ~= 522) then
			this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		end
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type == 397 or this.type == 396 or this.type == 398) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type == 551) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * balance * bossAdjustment)
		this.damage = math.floor(this.damage * 0.65)
	elseif NPCID.Sets('BelongsToInvasionOldOnesArmy',this.type) then
		local num = 7
		local single1 = (balance * (num - 1) + 1) / num
		this.lifeMax = math.floor(this.lifeMax * single1 * bossAdjustment)
	end
	local num5 = 1 + (numPlayers - 1)*0.2
	if (this.type >= 305 and this.type <= 314) or this.type == 326 or this.type == 329 or this.type == 330 then
		this.lifeMax = math.floor( this.lifeMax * 0.75 * num5)
		this.damage = math.floor( this.damage * 0.75)
	elseif this.type == 315 or this.type == 325 or this.type == 327 then
		this.lifeMax = math.floor(this.lifeMax * 0.65 *  bossAdjustment)
		this.damage = math.floor(this.damage * 0.75)
	end
	if (this.type >= 338 and this.type <= 343) or (this.type >= 347 and this.type <= 352) then
		this.lifeMax = math.floor(this.lifeMax * 0.75 * num5)
		this.damage = math.floor(this.damage * 0.75)
	elseif (this.type >= 344 and this.type <= 346) then
		this.lifeMax = math.floor(this.lifeMax * 0.65 *  bossAdjustment)
		this.damage = math.floor(this.damage * 0.75)
	end
	if (Main.getGoodWorld) then
		if (this.type == 6 and NPC.AnyNPCs(13)) then
			this.lifeMax = math.floor(this.lifeMax * 1.5 * bossAdjustment);
			this.defense = this.defense + 2;
		end
		if (this.type == 32 and NPC.AnyNPCs(35)) then
			this.lifeMax = math.floor(this.lifeMax * 1.5 * bossAdjustment);
			this.defense = this.defense + 6;
		end
		if (this.type == 24 and NPC.AnyNPCs(113)) then
			this.lifeMax = math.floor(this.lifeMax * 1.5 * bossAdjustment);
			this.defense = this.defense + 10;
		end
	end
	this.defDefense = this.defense
	this.defDamage = this.damage
	this.life = this.lifeMax
end

local MathHelper={}
MathHelper.Lerp = function(value1, value2, amount)
	return value1 + (value2 - value1) * amount;
end
local Utils={}
Utils.GetLerpValue = function(from, to, t, clamped)
    if (clamped) then
        if (from >= to) then
            if (t < to) then
                return 1;
            end
            if (t > from) then
                return 0;
            end
        else
            if (t < from) then
                return 0;
            end
            if (t > to) then
                return 1;
            end
        end
    end
    return (t - from) / (to - from);
end
Utils.Remap = function(fromValue, fromMin, fromMax, toMin, toMax, clamped)
	return MathHelper.Lerp(toMin, toMax, Utils.GetLerpValue(fromMin, fromMax, fromValue, clamped));
end

---from Terraria.NPC.ScaleStats_UseStrengthMultiplier
local function ScaleStats_UseStrengthMultiplier(strength)
	if(strength == 1) then
		return
	end
	local flag
	if(this.type < 0) then
		flag = false
	else
		flag = NPCID.Sets('ProjectileNPC', this.type)
	end
	if (not flag) then
		this.lifeMax = math.floor(this.lifeMax * strength)
	end
	this.damage = math.floor(this.damage * strength)
    local single = 1;
    local single1 = 2;
    local single2 = 3;
    local single3, single4;
    if (Main.getGoodWorld) then
        single = single + 1;
        single1 = single1 + 1;
        single2 = single2 + 1;
    end
	local enemyMoneyDropMultiplier, enemyMoneyDropMultiplier1
    if (not flag) then
        enemyMoneyDropMultiplier = GameModeData.NormalMode.EnemyMoneyDropMultiplier;
        enemyMoneyDropMultiplier1 = GameModeData.ExpertMode.EnemyMoneyDropMultiplier;
        if (Main.getGoodWorld) then
            enemyMoneyDropMultiplier = enemyMoneyDropMultiplier + 1;
            enemyMoneyDropMultiplier1 = enemyMoneyDropMultiplier1 + 1;
        end
        single3 = Utils.Remap(strength, single, single1, enemyMoneyDropMultiplier, enemyMoneyDropMultiplier1, true);
        this.value = math.floor(this.value * single3);
    end
    knockbackToEnemiesMultiplier = GameModeData.NormalMode.KnockbackToEnemiesMultiplier;
    knockbackToEnemiesMultiplier1 = GameModeData.MasterMode.KnockbackToEnemiesMultiplier;
    single4 = Utils.Remap(strength, single, single2, knockbackToEnemiesMultiplier, knockbackToEnemiesMultiplier1, true);
    this.knockBackResist = this.knockBackResist * single4;
end

local NPCStrengthHelper={}
NPCStrengthHelper.new = function(data, strength, isGetGoodWorld)
    NPCStrengthHelper._strengthOverride = strength;
    NPCStrengthHelper._gameModeData = data;
    NPCStrengthHelper._gameModeDifficulty = 1;
    if (NPCStrengthHelper._gameModeData.IsExpertMode) then
        NPCStrengthHelper._gameModeDifficulty = NPCStrengthHelper._gameModeDifficulty + 1;
    end
    if (NPCStrengthHelper._gameModeData.IsMasterMode) then
        NPCStrengthHelper._gameModeDifficulty = NPCStrengthHelper._gameModeDifficulty + 1;
    end
    if (isGetGoodWorld) then
        NPCStrengthHelper._gameModeDifficulty = NPCStrengthHelper._gameModeDifficulty + 1;
    end
end
NPCStrengthHelper.IsExpertMode = function()
    if (NPCStrengthHelper._strengthOverride >= 2) then
        return true;
    end
    return NPCStrengthHelper._gameModeDifficulty >= 2;
end
NPCStrengthHelper.IsMasterMode = function()
    if (NPCStrengthHelper._strengthOverride >= 3) then
        return true;
    end
    return NPCStrengthHelper._gameModeDifficulty >= 3;
end
NPCStrengthHelper.ExtraDamageForGetGoodWorld = function()
    if (NPCStrengthHelper._strengthOverride >= 4) then
        return true;
    end
    return NPCStrengthHelper._gameModeDifficulty >= 4;
end

---from Terraria.NPC.ScaleStats
local function ScaleStats(activePlayersCount, gameModeData, strengthOverride)

	local single
	local single1
	if (not NPCID.Sets('NeedsExpertScaling', this.type) and (this.lifeMax <= 5 or this.damage == 0 or this.friendly or this.townNPC)) then
		return
	end
	local value = 1
	if (strengthOverride) then
		value = strengthOverride
-- //just use strengthOverride
--	elseif (gameModeData.IsJourneyMode) then
--		CreativePowers.DifficultySliderPower power = CreativePowerManager.Instance.GetPower<CreativePowers.DifficultySliderPower>()
--		if (power ~= null and power.GetIsUnlocked())
--		{
--			value = power.StrengthMultiplierToGiveNPCs
--		}
	end
    local single2 = value;
    if (gameModeData.IsJourneyMode and Main.getGoodWorld) then
        value = value + 1;
    end
	NPCStrengthHelper.new(gameModeData, value)
	if (NPCStrengthHelper.IsExpertMode()) then
		ScaleStats_ApplyExpertTweaks()
	end
	ScaleStats_ApplyGameMode(gameModeData)
    if (Main.getGoodWorld and NPCStrengthHelper.ExtraDamageForGetGoodWorld()) then
        this.damage = this.damage + this.damage / 3;
    end
	if (NPCStrengthHelper.IsExpertMode()) then
		local num = activePlayersCount or 1
		this.statsAreScaledForThisManyPlayers = num
		single, single1 = GetStatScalingFactors(num)
		local single3 = 1
		if (gameModeData.IsMasterMode) then
			single3 = 0.85
		end
		ScaleStats_ApplyMultiplayerStats(num, single, single1, single3)
	end
	ScaleStats_UseStrengthMultiplier(value)
	this.strengthMultiplier = single2;
	if (((this.type < 0 ) and true or not NPCID.Sets('ProjectileNPC', this.type)) and this.lifeMax < 6) then
		this.lifeMax = 6
	end
	this.life = this.lifeMax
	this.defDamage = this.damage
	this.defDefense = this.defense
end

---from Terraria.NPCSpawnParams.WithScale
local function WithScale(spawnparams, scaleOverride)
	-- before 1.4.0.5, this method actually did nothing. this is fixed in 1.4.0.5.
	spawnparams.sizeScaleOverride = scaleOverride
	return spawnparams
end

local SetDefaultsFromNetId, SetDefaults, SetDefaults_ForNetId

---from Terraria.NPC.SetDefaults_ForNetId
function SetDefaults_ForNetId(Type, spawnparams, scaleOverride)
	if (type(spawnparams) == 'table') then
		SetDefaults(Type, WithScale(spawnparams, scaleOverride))
	else
		scaleOverride = spawnparams
		local nPCSpawnParam = {
			sizeScaleOverride = scaleOverride,
		}
		SetDefaults(Type, nPCSpawnParam)
	end
end

local function getZenithSeedAdjustmentsBeforeEverything()
    local num = this.type;
    if (num - 125 <= 6 or num == 139) then
        this.lifeMax = math.floor(this.lifeMax * 0.8);
    end
end

local function getGoodAdjustments()
		local single = this.scale
	if (this.type == 13) then
		this.scale = this.scale * 1.35
		this.defense = this.defense + 2
	elseif (this.type == 14) then
		this.scale = this.scale * 1.4
		this.defense = this.defense + 2
	elseif (this.type == 15) then
		this.scale = this.scale * 1.4
		this.defense = this.defense + 2
	elseif (this.type == 35) then
		this.scale = this.scale * 1.25
	elseif (this.type == 36) then
		this.scale = this.scale * 1.15
	elseif (this.type == 113) then
		this.scale = this.scale * 0.65
		this.lifeMax = math.floor(this.lifeMax * 1.5)
		this.defense = this.defense + 3
	elseif (this.type == 114) then
		this.scale = this.scale * 0.65
		this.lifeMax = math.floor(this.lifeMax * 1.5)
		this.defense = this.defense + 3
	elseif (this.type == 115) then
		this.scale = this.scale * 1.4
	elseif (this.type == 116) then
		this.scale = this.scale * 1.4
	elseif (this.type == 222) then
		this.scale = this.scale * 1.2
	elseif (this.type == 245) then
		this.canDisplayBuffs = false
		this.scale = this.scale * 0.5
	elseif (this.type == 246) then
		this.canDisplayBuffs = false
		this.scale = this.scale * 0.5
	elseif (this.type == 247 or this.type == 248) then
		this.canDisplayBuffs = false
		this.scale = this.scale * 0.5
	elseif (this.type == 249) then
		this.scale = this.scale * 0.5
	elseif (this.type == 262) then
		this.scale = this.scale * 1.3
	elseif (this.type == 266) then
		this.defense = math.floor(this.defense * 1.5)
		this.damage = math.floor(this.damage * 1.2)
		this.scale = this.scale * 1.1
	elseif (this.type == 125) then
		this.scale = this.scale * 0.8
	elseif (this.type == 126) then
		this.scale = this.scale * 0.8
	elseif (this.type == 127) then
		this.scale = this.scale * 1.1
	elseif (this.type == 128) then
		this.scale = this.scale * 1.1
	elseif (this.type == 129) then
		this.scale = this.scale * 1.1
	elseif (this.type == 130) then
		this.scale = this.scale * 1.1
	elseif (this.type == 131) then
		this.scale = this.scale * 1.1
	elseif (this.type == 134) then
		this.scale = this.scale * 1.3
	elseif (this.type == 135) then
		this.scale = this.scale * 1.3
	elseif (this.type ~= 136) then
		if (this.type ~= 139) then
			return
		end
		this.scale = this.scale * 1.6
	else
		this.scale = this.scale * 1.3
	end
	if (this.IsABestiaryIconDummy) then
		this.scale = single
		return
	end
	this.width = math.floor(this.width * this.scale)
	this.height = math.floor(this.height * this.scale)
end

local function getTenthAnniversaryAdjustments()
	local num = this.scale
	local num2 = 0.5
	if this.type == 4 then
		this.scale = this.scale * num2
	elseif this.type == 13 or this.type == 14 or this.type == 15 then
		this.scale = this.scale * num2
	elseif this.type == 266 or this.type == 267 then
		this.scale = this.scale * num2
	elseif this.type == 35 or this.type == 36 then
		this.scale = this.scale * num2
	elseif this.type == 222 then
		this.scale = this.scale * num2
	elseif this.type == 113 or this.type == 114 or this.type == 115 or this.type == 116 then
		this.scale = this.scale * num2
	elseif this.type == 134 or this.type == 135 or this.type == 136 or this.type == 139 then
		this.scale = this.scale * num2
	elseif this.type == 125 or this.type == 126 then
		this.scale = this.scale * num2
	elseif this.type == 127 or this.type == 128 or this.type == 129 or this.type == 130 or this.type == 131 then
		this.scale = this.scale * num2
	elseif this.type == 370 then
		this.scale = this.scale * num2
	elseif this.type == 636 then
		this.scale = this.scale * num2
	elseif this.type == 422 or this.type == 493 or this.type == 507 or this.type == 517 then
		this.scale = this.scale * num2
	end
	if (this.IsABestiaryIconDummy) then
		this.scale = num
		return
	end
	this.width = math.floor(this.width * this.scale)
	this.height = math.floor(this.height * this.scale)
end

---from Terraria.NPC.SetDefaultsFromNetId
function SetDefaultsFromNetId(id, spawnparams)
	local flag = false
	local num = NPCID.FromNetId(id)
	SetDefaults(0)
	if (id == -1) then
		SetDefaults_ForNetId(num, 0.6)
		flag = true
		this.damage = 45
		this.defense = 10
		this.life = 90
		this.knockBackResist = this.knockBackResist * 1.2
		this.value = 100
	elseif (id == -2) then
		SetDefaults_ForNetId(num, 0.9)
		flag = true
		this.damage = 45
		this.defense = 20
		this.life = 90
		this.knockBackResist = this.knockBackResist * 1.2
		this.value = 100
	elseif (id == -3) then
		SetDefaults_ForNetId(num, 0.9)
		flag = true
		this.damage = 6
		this.defense = 0
		this.life = 14
		this.knockBackResist = this.knockBackResist * 1.2
		-- this.color = new Color(0, 220, 40, 100)
		this.value = 3
	elseif (id == -4) then
		SetDefaults_ForNetId(num, 0.6)
		flag = true
		this.damage = 5
		this.defense = 5
		this.life = 150
		this.knockBackResist = this.knockBackResist * 1.4
		-- this.color = new Color(250, 30, 90, 90)
		this.value = 10000
		this.rarity = 2
	elseif (id == -5) then
		SetDefaults_ForNetId(num, 0.9)
		flag = true
		this.damage = 13
		this.defense = 4
		this.life = 30
		this.knockBackResist = this.knockBackResist * 0.95
		this.alpha = 120
		-- this.color = new Color(0, 0, 0, 50)
		this.value = 10
	elseif (id == -6) then
		SetDefaults_ForNetId(num, 1.05)
		flag = true
		this.damage = 15
		this.defense = 4
		this.life = 45
		-- this.color = new Color(0, 0, 0, 50)
		this.value = 20
	elseif (id == -7) then
		SetDefaults_ForNetId(num, 1.2)
		flag = true
		this.damage = 12
		this.defense = 6
		this.life = 40
		this.knockBackResist = this.knockBackResist * 0.9
		-- this.color = new Color(200, 0, 255, 150)
		this.value = 10
	elseif (id == -8) then
		SetDefaults_ForNetId(num, 1.025)
		flag = true
		this.damage = 12
		this.defense = 4
		this.life = 35
		-- this.color = new Color(255, 30, 0, 100)
		this.value = 8
	elseif (id == -9) then
		SetDefaults_ForNetId(num, 1.2)
		flag = true
		this.damage = 15
		this.defense = 7
		this.life = 45
		-- this.color = new Color(255, 255, 0, 100)
		this.value = 10
	elseif (id == -10) then
		SetDefaults_ForNetId(num, 1.1)
		flag = true
		this.damage = 18
		this.defense = 6
		this.life = 60
		-- this.color = new Color(143, 215, 93, 100)
		this.value = 500
	elseif (id == -11) then
		local single = 0.85
		if (Main.remixWorld) then
			single = single * 1.3
		end
		SetDefaults_ForNetId(num, spawnparams, single)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -12) then
		local single1 = 1.15;
		if (Main.remixWorld or Main.getGoodWorld) then
			single1 = single1 * 1.3;
		end
		SetDefaults_ForNetId(num, spawnparams, single1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -13) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
	elseif (id == -14) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor((this.damage * this.scale) * 1.1)
		this.life = math.floor((this.life * this.scale) * 1.1)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = 2
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -15) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor((this.damage * this.scale) * 1.1)
		this.life = 400
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = 2
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
		this.height = 44
	elseif (id == -16) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -17) then
		SetDefaults_ForNetId(num, spawnparams, 1.2)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -18) then
		SetDefaults_ForNetId(num, spawnparams, 0.8)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -19) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -20) then
		SetDefaults_ForNetId(num, 1.1)
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -21) then
		SetDefaults_ForNetId(num, spawnparams, 1.2)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -22) then
		local single2 = 0.85;
		if (Main.remixWorld) then
			single2 = single2 * 1.3;
		end
		SetDefaults_ForNetId(num, spawnparams, single2)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -23) then
		local single3 = 1.15;
		if (Main.remixWorld) then
			single3 = single2 * 1.3;
		end
		SetDefaults_ForNetId(num, spawnparams, single3)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -24) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -25) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -26) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -27) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -28) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -29) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -30) then
		SetDefaults_ForNetId(num, spawnparams, 0.93)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -31) then
		SetDefaults_ForNetId(num, spawnparams, 1.13)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -32) then
		SetDefaults_ForNetId(num, spawnparams, 0.89)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -33) then
		SetDefaults_ForNetId(num, spawnparams, 1.11)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -34) then
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -35) then
		SetDefaults_ForNetId(num, spawnparams, 1.13)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -36) then
		SetDefaults_ForNetId(num, spawnparams, 0.92)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -37) then
		SetDefaults_ForNetId(num, spawnparams, 1.08)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -38) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -39) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -40) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -41) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -42) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -43) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -44) then
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -45) then
		SetDefaults_ForNetId(num, spawnparams, 1.05)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -46) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -47) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -48) then
		SetDefaults_ForNetId(num, spawnparams, 0.93)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -49) then
		SetDefaults_ForNetId(num, spawnparams, 1.07)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -50) then
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -51) then
		SetDefaults_ForNetId(num, spawnparams, 1.13)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -52) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -53) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -54) then
		SetDefaults_ForNetId(num, spawnparams, 0.9)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -55) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -56) then
		SetDefaults_ForNetId(num, spawnparams, 0.85)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -57) then
		SetDefaults_ForNetId(num, spawnparams, 1.25)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -58) then
		SetDefaults_ForNetId(num, spawnparams, 0.8)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -59) then
		SetDefaults_ForNetId(num, spawnparams, 1.15)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -60) then
		SetDefaults_ForNetId(num, spawnparams, 0.92)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -61) then
		SetDefaults_ForNetId(num, spawnparams, 1.1)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -62) then
		SetDefaults_ForNetId(num, spawnparams, 0.78)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id == -63) then
		SetDefaults_ForNetId(num, spawnparams, 1.16)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	elseif (id ~= -64) then
		if (id ~= -65) then
			return
		end
		SetDefaults_ForNetId(num, spawnparams, 1.21)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	else
		SetDefaults_ForNetId(num, spawnparams, 0.87)
		flag = false
		this.defense = math.floor(this.defense * this.scale)
		this.damage = math.floor(this.damage * this.scale)
		this.life = math.floor(this.life * this.scale)
		this.value = (math.floor(this.value * this.scale))
		this.npcSlots = this.npcSlots * this.scale
		this.knockBackResist = this.knockBackResist * (2 - this.scale)
	end
	this.netID = id
	this.lifeMax = this.life
	this.defDamage = this.damage
	this.defDefense = this.defense
	if (flag) then
		ScaleStats(spawnparams.playerCountForMultiplayerDifficultyOverride, spawnparams.gameModeData, spawnparams.strengthMultiplierOverride)
		this.life = this.lifeMax
	end
end

---from Terraria.NPC.SetDefaults
function SetDefaults(Type, spawnparams)

	spawnparams = spawnparams or {}

	spawnparams.sizeScaleOverride = spawnparams.sizeScaleOverride or 1
	spawnparams.playerCountForMultiplayerDifficultyOverride = spawnparams.playerCountForMultiplayerDifficultyOverride or 1
	spawnparams.gameModeData = spawnparams.gameModeData or GameModeData.NormalMode
	spawnparams.strengthMultiplierOverride = spawnparams.strengthMultiplierOverride or 1

	local single
	local flag
	local nullable
	local nullable1
	local nullable2

	if (Main.getGoodWorld and spawnparams.sizeScaleOverride) then
		spawnparams.sizeScaleOverride = (spawnparams.sizeScaleOverride + spawnparams.sizeScaleOverride * spawnparams.sizeScaleOverride) / 2
	end

	if Type < 0 then
		SetDefaultsFromNetId(Type, spawnparams)
		return
	end
	this = {} -- reset
	-- resetStat
	local single1 = 0.5
	single = single1
	this.lavaMovementSpeed = single1
	this.waterMovementSpeed = single
	this.honeyMovementSpeed = 0.25
	this.altTexture = 0
	this.townNpcVariationIndex = 0
	this.nameOver = 0
	this.takenDamageMultiplier = 1
	this.extraValue = 0
	this.rarity = 0
	this.dontCountMe = false
	this.releaseOwner = 255
	this.catchItem = 0
	this.needsUniqueInfoUpdate = true
	this.netStream = 32
	this.buffImmuneAll = false
	this.buffImmuneAllNotWhips = false
	this.netID = 0
	this.netAlways = false
	this.netSpam = 0
	this.SpawnedFromStatue = false
    this.CanBeReplacedByOtherNPCs = false;
    -- this.shimmerTransparency = 0;
    -- if (this.netShimmer)
    -- {
    --     this.shimmerTransparency = 1f;
    --     this.netShimmer = false;
    -- }
	this.statsAreScaledForThisManyPlayers = 0
	this.strengthMultiplier = 1
	this.buffImmune = {}
	this.setFrameSize = false;
    this.netSkip = -2;
    this.realLife = -1;
    this.lifeRegen = 0;
    this.lifeRegenExpectedLossPerSecond = -1;
    this.lifeRegenCount = 0;
    this.markedByScytheWhip = false;
    this.poisoned = false;
    this.soulDrain = false;
    this.venom = false;
    this.shadowFlame = false;
    this.canDisplayBuffs = true;
    this.onFire = false;
    this.midas = false;
    this.ichor = false;
    this.onFrostBurn = false;
    this.onFrostBurn2 = false;
    this.shimmering = false;
    this.confused = false;
    this.loveStruck = false;
    this.dontTakeDamageFromHostiles = false;
    this.stinky = false;
    this.dryadWard = false;
    this.onFire2 = false;
    this.onFire3 = false;
    this.justHit = false;
    this.dontTakeDamage = false;
    this.catchableNPCTempImmunityCounter = 0;
	this.npcSlots = 1
	this.lavaImmune = false
	this.lavaWet = false
	this.wetCount = 0
	this.wet = false
	this.townNPC = false
	this.homeless = false
	this.homeTileX = -1
	this.homeTileY = -1
	this.housingCategory = 0
	this.friendly = false
	this.behindTiles = false
	this.boss = false
	this.noTileCollide = false
	this.rotation = 0
	this.active = true
	this.alpha = 0
	-- this.color = new Color()
	this.collideX = false
	this.collideY = false
	this.direction = 0
	this.oldDirection = this.direction
	this.frameCounter = 0
	this.netUpdate = true
	this.netUpdate2 = false
	this.knockBackResist = 1
	this.GivenName = ""
	this.noGravity = false
	this.scale = 1
	this.HitSound = ''
	this.DeathSound = ''
	this.spriteDirection = -1
	this.timeLeft = NPC.activeTime
	this.type = Type
	this.value = 0
	this.coldDamage = false
	this.trapImmune = false
	this.hide = false
	this.immortal = false
	this.chaseable = true
	this.breath = 200
	this.breathCounter = 0
    this.reflectsProjectiles = false;
    this.canGhostHeal = true;
    this.javelined = false;
    this.tentacleSpiked = false;
    this.bloodButchered = false;
    this.daybreak = false;
    this.celled = false;
    this.dryadBane = false;
    this.betsysCurse = false;
    this.oiled = false;
    this.despawnEncouraged = false;
	this.width = 0
	this.height = 0
	this.lifeMax = 0
	this.damage = 0
	this.defense = 0

-- ==================

if (this.type == 1) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 7
	this.defense = 2
	this.lifeMax = 25
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 175
	-- this.color = new Color(0, 80, 255, 100)
	this.value = 25
elseif (this.type == 2) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 18
	this.defense = 2
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.value = 75
elseif (this.type == 3) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 6
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 60
elseif (this.type == 430) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 6
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 60
elseif (this.type == 431) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 16
	this.defense = 8
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 80
elseif (this.type == 432) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 16
	this.defense = 8
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 65
elseif (this.type == 433) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 13
	this.defense = 6
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.55
	this.value = 55
elseif (this.type == 434) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 13
	this.defense = 8
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 80
elseif (this.type == 435) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 16
	this.defense = 4
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.55
	this.value = 70
elseif (this.type == 436) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 12
	this.defense = 4
	this.lifeMax = 38
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.6
	this.value = 65
elseif (this.type == 4) then
	this.width = 100
	this.height = 110
	this.aiStyle = 4
	this.damage = 15
	this.defense = 12
	this.lifeMax = 2800
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	SpawnWithHigherTime(30)
	this.boss = true
	this.value = 30000
	this.npcSlots = 5
elseif (this.type == 5) then
	this.width = 20
	this.height = 20
	this.aiStyle = 5
	this.damage = 12
	this.defense = 0
	this.lifeMax = 8
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
elseif (this.type == 6) then
	this.npcSlots = 1
	this.width = 30
	this.height = 30
	this.aiStyle = 5
	this.damage = 22
	this.defense = 8
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.knockBackResist = 0.5
	this.value = 90
	if (Main.remixWorld) then
		this.scale = this.scale * 1.3
		this.damage = math.floor(this.damage * this.scale)
		this.defense = math.floor(this.defense * this.scale)
		this.lifeMax = math.floor(this.lifeMax * this.scale)
		this.value = (math.floor(this.value * this.scale))
	elseif (Main.getGoodWorld) then
		this.scale = this.scale * 1.3
	end
elseif (this.type == 7) then
	this.npcSlots = 3.5
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.damage = 31
	this.defense = 2
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 140
	this.netAlways = true
	if (Main.remixWorld) then
		this.scale = this.scale * 1.3
		this.damage = math.floor(this.damage * this.scale)
		this.defense = math.floor(this.defense * this.scale)
		this.lifeMax = math.floor(this.lifeMax * this.scale)
		this.value = (math.floor(this.value * this.scale))
	end
elseif (this.type == 8) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 16
	this.defense = 6
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 140
	this.dontCountMe = true
	if (Main.remixWorld) then
		this.scale = this.scale * 1.3
		this.damage = math.floor(this.damage * this.scale)
		this.defense = math.floor(this.defense * this.scale)
		this.lifeMax = math.floor(this.lifeMax * this.scale)
		this.value = (math.floor(this.value * this.scale))
	end
elseif (this.type == 9) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 13
	this.defense = 10
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 140
	this.dontCountMe = true
	if (Main.remixWorld) then
		this.scale = this.scale * 1.3
		this.damage = math.floor(this.damage * this.scale)
		this.defense = math.floor(this.defense * this.scale)
		this.lifeMax = math.floor(this.lifeMax * this.scale)
		this.value = (math.floor(this.value * this.scale))
	end
elseif (this.type == 10) then
	this.width = 14
	this.height = 14
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 8
	this.defense = 0
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 40
elseif (this.type == 11) then
	this.width = 14
	this.height = 14
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 4
	this.defense = 4
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 40
	this.dontCountMe = true
elseif (this.type == 12) then
	this.width = 14
	this.height = 14
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 4
	this.defense = 6
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 40
	this.dontCountMe = true
elseif (this.type == 13) then
	this.npcSlots = 5
	this.width = 38
	this.height = 38
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 22
	this.defense = 2
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 800
	this.scale = 1
	this.alpha = 255
elseif (this.type == 14) then
	this.width = 38
	this.height = 38
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 13
	this.defense = 4
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 800
	this.scale = 1
	this.dontCountMe = true
	this.alpha = 255
elseif (this.type == 15) then
	this.width = 38
	this.height = 38
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 11
	this.defense = 8
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 800
	this.scale = 1
	this.dontCountMe = true
	this.alpha = 255
elseif (this.type == 16) then
	this.npcSlots = 2
	this.width = 36
	this.height = 24
	this.aiStyle = 1
	this.damage = 20
	this.defense = 7
	this.lifeMax = 90
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 120
	-- this.color = new Color(0, 0, 0, 50)
	this.value = 75
	this.scale = 1.25
	this.knockBackResist = 0.6
elseif (this.type == 17) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 18) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 19) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 20) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 21) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 100
elseif (this.type == 22) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 23) then
	this.width = 22
	this.height = 22
	this.aiStyle = 5
	this.damage = 40
	this.defense = 6
	this.lifeMax = 26
	this.HitSound = SoundID.NPCHit3
	this.DeathSound = SoundID.NPCDeath3
	this.noGravity = true
	this.noTileCollide = true
	this.value = 80
	this.knockBackResist = 0.4
elseif (this.type == 24) then
	this.npcSlots = 3
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 30
	this.defense = 16
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.lavaImmune = true
	this.value = 350
elseif (this.type == 25) then
	this.width = 16
	this.height = 16
	this.aiStyle = 9
	this.damage = 30
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = SoundID.NPCHit3
	this.DeathSound = SoundID.NPCDeath3
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.alpha = 100
elseif (this.type == 31) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 26
	this.defense = 8
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.8
	this.value = 130
elseif (this.type == 32) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 20
	this.defense = 2
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.6
	this.value = 140
	this.npcSlots = 2
elseif (this.type == 33) then
	this.width = 16
	this.height = 16
	this.aiStyle = 9
	this.damage = 20
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = SoundID.NPCHit3
	this.DeathSound = SoundID.NPCDeath3
	this.noGravity = true
	this.noTileCollide = true
	this.alpha = 255
	this.knockBackResist = 0
elseif (this.type == 34) then
	this.width = 26
	this.height = 28
	this.aiStyle = 10
	this.damage = 35
	this.defense = 6
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.noGravity = true
	this.noTileCollide = true
	this.value = 150
	this.knockBackResist = 0.2
	this.npcSlots = 0.75
elseif (this.type == 35) then
	this.width = 80
	this.height = 102
	this.aiStyle = 11
	this.damage = 32
	this.defense = 10
	this.lifeMax = 4400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.noGravity = true
	this.noTileCollide = true
	this.value = 50000
	this.knockBackResist = 0
	this.boss = true
	this.npcSlots = 6
elseif (this.type == 36) then
	this.width = 52
	this.height = 52
	this.aiStyle = 12
	this.damage = 20
	this.defense = 14
	this.lifeMax = 600
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
elseif (this.type == 37) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 38) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 39) then
	this.npcSlots = 6
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 36
	this.defense = 12
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath5
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 1200
	if (Main.getGoodWorld) then
		this.lifeMax = this.lifeMax + 100
		this.defense = this.defense + 2
		this.damage = this.damage + 4
		this.scale = 1.1
		if (Main.remixWorld) then
			this.lifeMax = this.lifeMax + 50
			this.scale = this.scale * 1.2
			this.defense = this.defense + 4
		end
	end
elseif (this.type == 40) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 20
	this.defense = 18
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath5
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 1200
	this.dontCountMe = true
	if (Main.getGoodWorld) then
		this.lifeMax = this.lifeMax + 100
		this.defense = this.defense + 2
		this.damage = this.damage + 4
		this.scale = 1.1
		if (Main.remixWorld) then
			this.lifeMax = this.lifeMax + 50
			this.scale = this.scale * 1.2
			this.defense = this.defense + 4
		end
	end
elseif (this.type == 41) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 16
	this.defense = 18
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath5
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 1200
	this.dontCountMe = true
	if (Main.getGoodWorld) then
		this.lifeMax = this.lifeMax + 100
		this.defense = this.defense + 2
		this.damage = this.damage + 4
		this.scale = 1.1
		if (Main.remixWorld) then
			this.lifeMax = this.lifeMax + 50
			this.scale = this.scale * 1.2
			this.defense = this.defense + 4
		end
	end
elseif (this.type == 42) then
	this.width = 34
	this.height = 32
	this.aiStyle = 5
	this.damage = 26
	this.defense = 12
	this.lifeMax = 48
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.5
	this.DeathSound = SoundID.NPCDeath1
	this.value = 200
	this.noGravity = true
elseif (this.type == 43) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 30
	this.height = 30
	this.aiStyle = 13
	this.damage = 34
	this.defense = 10
	this.lifeMax = 110
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0
	this.DeathSound = SoundID.NPCDeath1
	this.value = 350
elseif (this.type == 44) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 22
	this.defense = 9
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 250
	this.rarity = 1
elseif (this.type == 45) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 20
	this.defense = 4
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.6
	this.value = 5000
	this.rarity = 4
elseif (this.type == 46 or this.type == 303 or this.type == 337 or this.type == 540) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2019
elseif (this.type == 47) then
	this.width = 18
	this.height = 20
	this.aiStyle = 3
	this.damage = 20
	this.defense = 4
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 48) then
	this.width = 24
	this.height = 34
	this.aiStyle = 14
	this.damage = 25
	this.defense = 8
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath1
	this.value = 300
elseif (this.type == 49) then
	this.npcSlots = 0.5
	this.width = 22
	this.height = 18
	this.aiStyle = 14
	this.damage = 13
	this.defense = 2
	this.lifeMax = 16
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath4
	this.value = 90
elseif (this.type == 50) then
	this.boss = true
	this.width = 98
	this.height = 92
	this.aiStyle = 15
	this.damage = 40
	this.defense = 10
	this.lifeMax = 2000
	this.knockBackResist = 0
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 30
	this.value = 10000
	this.scale = 1.25
	SpawnWithHigherTime(30)
	this.npcSlots = 5
elseif (this.type == 51) then
	this.npcSlots = 0.5
	this.width = 22
	this.height = 18
	this.aiStyle = 14
	this.damage = 20
	this.defense = 4
	this.lifeMax = 34
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath4
	this.value = 80
elseif (this.type == 52) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 10
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 1000
	this.rarity = 2
elseif (this.type == 53) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 8
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 1000
	this.rarity = 2
elseif (this.type == 54) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 55) then
	this.noGravity = true
	this.width = 20
	this.height = 18
	this.aiStyle = 16
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.catchItem = 261
elseif (this.type == 56) then
	this.noTileCollide = true
	this.noGravity = true
	this.width = 30
	this.height = 30
	this.aiStyle = 13
	this.damage = 25
	this.defense = 10
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0
	this.DeathSound = SoundID.NPCDeath1
	this.value = 90
elseif (this.type == 57) then
	this.noGravity = true
	this.width = 18
	this.height = 20
	this.aiStyle = 16
	this.damage = 30
	this.defense = 6
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 58) then
	this.npcSlots = 0.5
	this.noGravity = true
	this.width = 18
	this.height = 20
	this.aiStyle = 16
	this.damage = 25
	this.defense = 2
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 50
elseif (this.type == 59) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 15
	this.defense = 10
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.scale = 1.1
	this.alpha = 50
	this.lavaImmune = true
	this.value = 120
	if (Main.remixWorld) then
		this.damage = 7
		this.defense = 2
		this.lifeMax = 25
		this.value = 25
	end
elseif (this.type == 60) then
	this.npcSlots = 0.5
	this.width = 22
	this.height = 18
	this.aiStyle = 14
	this.damage = 35
	this.defense = 8
	this.lifeMax = 46
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath4
	this.value = 120
	this.scale = 1.1
	this.lavaImmune = true
elseif (this.type == 61) then
	this.width = 36
	this.height = 36
	this.aiStyle = 17
	this.damage = 15
	this.defense = 4
	this.lifeMax = 40
	this.knockBackResist = 0.8
	this.HitSound = SoundID.NPCHit28
	this.DeathSound = SoundID.NPCDeath31
	this.value = 60
elseif (this.type == 62) then
	this.npcSlots = 2
	this.width = 28
	this.height = 48
	this.aiStyle = 14
	this.damage = 32
	this.defense = 8
	this.lifeMax = 120
	this.HitSound = SoundID.NPCHit21
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath24
	this.value = 300
	this.lavaImmune = true
elseif (this.type == 63) then
	this.noGravity = true
	this.width = 26
	this.height = 26
	this.aiStyle = 18
	this.damage = 25
	this.defense = 4
	this.lifeMax = 34
	this.HitSound = SoundID.NPCHit25
	this.DeathSound = SoundID.NPCDeath28
	this.value = 100
	this.alpha = 20
elseif (this.type == 64) then
	this.noGravity = true
	this.width = 26
	this.height = 26
	this.aiStyle = 18
	this.damage = 30
	this.defense = 6
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit25
	this.DeathSound = SoundID.NPCDeath28
	this.value = 100
	this.alpha = 20
elseif (this.type == 65) then
	this.noGravity = true
	this.width = 100
	this.height = 24
	this.aiStyle = 16
	this.damage = 40
	this.defense = 2
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 400
	this.knockBackResist = 0.7
elseif (this.type == 66) then
	this.npcSlots = 2
	this.width = 28
	this.height = 48
	this.aiStyle = 14
	this.damage = 32
	this.defense = 8
	this.lifeMax = 140
	this.HitSound = SoundID.NPCHit21
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath24
	this.value = 1000
	this.lavaImmune = true
	this.rarity = 1
elseif (this.type == 67) then
	this.width = 28
	this.height = 20
	this.aiStyle = 3
	this.damage = 20
	this.defense = 10
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 60
elseif (this.type == 68) then
	this.width = 80
	this.height = 102
	this.aiStyle = 11
	this.damage = 1000
	this.defense = 9999
	this.lifeMax = 9999
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
elseif (this.type == 69) then
	this.width = 24
	this.height = 24
	this.aiStyle = 19
	this.damage = 10
	this.defense = 6
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit31
	this.DeathSound = SoundID.NPCDeath34
	this.knockBackResist = 0
	this.value = 60
	this.behindTiles = true
elseif (this.type == 70) then
	this.npcSlots = 0.3
	this.width = 34
	this.height = 34
	this.aiStyle = 20
	this.damage = 32
	this.defense = 100
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.dontTakeDamage = true
	this.scale = 1.5
elseif (this.type == 71) then
	this.npcSlots = 2
	this.width = 36
	this.height = 24
	this.aiStyle = 1
	this.damage = 30
	this.defense = 7
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 60
	this.value = 150
	this.scale = 1.25
	this.knockBackResist = 0.6
	this.rarity = 1
elseif (this.type == 72) then
	this.npcSlots = 0.3
	this.width = 34
	this.height = 34
	this.aiStyle = 21
	this.damage = 24
	this.defense = 100
	this.lifeMax = 100
	this.alpha = 100
	this.behindTiles = true
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.noGravity = true
	this.dontTakeDamage = true
	this.scale = 1.2
elseif (this.type == 73) then
	this.scale = 0.95
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 6
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.7
	this.value = 200
	this.rarity = 1
elseif (this.type == 74 or this.type == 297 or this.type == 298) then
	this.width = 14
	this.height = 14
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	if (this.type == 74) then
		this.catchItem = 2015
	end
	if (this.type == 297) then
		this.catchItem = 2016
	end
	if (this.type == 298) then
		this.catchItem = 2017
	end
	this.npcSlots = 0.4
elseif (this.type == 75) then
	this.noGravity = true
	this.width = 20
	this.height = 20
	this.aiStyle = 22
	this.damage = 55
	this.defense = 20
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit5
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath7
	this.value = 350
elseif (this.type == 77) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 40
	this.defense = 28
	this.lifeMax = 260
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 400
elseif (this.type == 78) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 50
	this.defense = 16
	this.lifeMax = 130
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.6
	this.value = 600
elseif (this.type == 79) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 60
	this.defense = 18
	this.lifeMax = 180
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.value = 700
elseif (this.type == 80) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 55
	this.defense = 18
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.55
	this.value = 700
elseif (this.type == 81) then
	this.width = 40
	this.height = 30
	this.aiStyle = 1
	this.damage = 55
	this.defense = 20
	this.lifeMax = 170
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 55
	this.value = 400
	this.scale = 1.1
elseif (this.type == 82) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 24
	this.height = 44
	this.aiStyle = 22
	this.damage = 65
	this.defense = 16
	this.lifeMax = 160
	this.HitSound = SoundID.NPCHit54
	this.DeathSound = SoundID.NPCDeath52
	this.alpha = 100
	this.value = 500
	this.knockBackResist = 0.7
	if (Main.remixWorld) then
		this.scale = this.scale * 1.2
		this.damage = math.floor(this.damage * this.scale)
		this.defense = math.floor(this.defense * this.scale)
		this.lifeMax = math.floor(this.lifeMax * this.scale)
		this.value = (math.floor(this.value * this.scale))
	end
elseif (this.type == 83) then
	this.width = 40
	this.height = 40
	this.aiStyle = 23
	this.damage = 80
	this.defense = 18
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.value = 1000
	this.knockBackResist = 0.4
elseif (this.type == 84) then
	this.width = 40
	this.height = 40
	this.aiStyle = 23
	this.damage = 80
	this.defense = 18
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.value = 1000
	this.knockBackResist = 0.4
elseif (this.type == 85) then
	this.width = 24
	this.height = 24
	this.aiStyle = 25
	this.damage = 80
	this.defense = 30
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.value = 100000
	this.knockBackResist = 0.3
	this.rarity = 4
	if (Main.remixWorld and not Main.hardMode) then
		this.damage = 30
		this.defense = 12
		this.lifeMax = 300
		this.value = Item.buyPrice(0, 2, 0, 0)
	end
elseif (this.type == 86) then
	this.width = 46
	this.height = 42
	this.aiStyle = 26
	this.damage = 65
	this.defense = 30
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit12
	this.DeathSound = SoundID.NPCDeath18
	this.knockBackResist = 0.3
	this.value = 1000
elseif (this.type == 87) then
	this.noTileCollide = true
	this.npcSlots = 5
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 80
	this.defense = 10
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath8
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 10000
	this.scale = 1
elseif (this.type == 88) then
	this.noTileCollide = true
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 40
	this.defense = 20
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath8
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 10000
	this.scale = 1
	this.dontCountMe = true
elseif (this.type == 89) then
	this.noTileCollide = true
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 40
	this.defense = 20
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath8
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 2000
	this.scale = 1
	this.dontCountMe = true
elseif (this.type == 90) then
	this.noTileCollide = true
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 40
	this.defense = 20
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath8
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 10000
	this.scale = 1
	this.dontCountMe = true
elseif (this.type == 91) then
	this.noTileCollide = true
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 40
	this.defense = 20
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath8
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 10000
	this.scale = 1
	this.dontCountMe = true
elseif (this.type == 92) then
	this.noTileCollide = true
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 40
	this.defense = 20
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath8
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 10000
	this.scale = 1
	this.dontCountMe = true
elseif (this.type == 93) then
	this.npcSlots = 0.5
	this.width = 26
	this.height = 20
	this.aiStyle = 14
	this.damage = 45
	this.defense = 16
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.75
	this.DeathSound = SoundID.NPCDeath4
	this.value = 400
elseif (this.type == 94) then
	this.npcSlots = 1
	this.width = 44
	this.height = 44
	this.aiStyle = 5
	this.damage = 60
	this.defense = 32
	this.lifeMax = 230
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.knockBackResist = 0.55
	this.value = 500
elseif (this.type == 95) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 45
	this.defense = 10
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.scale = 0.9
	this.value = 300
elseif (this.type == 96) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 28
	this.defense = 20
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.scale = 0.9
	this.value = 300
	this.dontCountMe = true
elseif (this.type == 97) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 26
	this.defense = 30
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.scale = 0.9
	this.value = 300
	this.dontCountMe = true
elseif (this.type == 98) then
	this.npcSlots = 3.5
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 70
	this.defense = 36
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 700
elseif (this.type == 99) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 55
	this.defense = 40
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 700
	this.dontCountMe = true
elseif (this.type == 100) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 40
	this.defense = 44
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 700
	this.dontCountMe = true
elseif (this.type == 101) then
	this.noGravity = true
	this.noTileCollide = true
	this.behindTiles = true
	this.width = 30
	this.height = 30
	this.aiStyle = 13
	this.damage = 70
	this.defense = 30
	this.lifeMax = 320
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.2
	this.DeathSound = SoundID.NPCDeath1
	this.value = 600
elseif (this.type == 102) then
	this.npcSlots = 0.5
	this.noGravity = true
	this.width = 18
	this.height = 20
	this.aiStyle = 16
	this.damage = 80
	this.defense = 22
	this.lifeMax = 90
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 103) then
	this.noGravity = true
	this.width = 26
	this.height = 26
	this.aiStyle = 18
	this.damage = 80
	this.defense = 30
	this.lifeMax = 120
	this.HitSound = SoundID.NPCHit25
	this.DeathSound = SoundID.NPCDeath28
	this.value = 800
	this.alpha = 20
elseif (this.type == 104) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 38
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit6
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
	this.value = 1000
elseif (this.type == 105) then
	this.friendly = true
	this.width = 18
	this.height = 34
	this.aiStyle = 0
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.rarity = 1
elseif (this.type == 106) then
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 0
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.rarity = 1
elseif (this.type == 107) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 108) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 109) then
	this.width = 34
	this.height = 78
	this.aiStyle = 3
	this.damage = 60
	this.defense = 25
	this.lifeMax = 800
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.2
	this.value = 10000
	this.rarity = 1
elseif (this.type == 110) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 45
	this.defense = 14
	this.lifeMax = 210
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.55
	this.value = 400
elseif (this.type == 112) then
	this.width = 16
	this.height = 16
	this.aiStyle = 9
	this.damage = 65
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = null
	this.DeathSound = SoundID.NPCDeath9
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.scale = 0.9
	this.alpha = 80
elseif (this.type == 113) then
	this.npcSlots = 10
	this.width = 100
	this.height = 100
	this.aiStyle = 27
	this.damage = 50
	this.defense = 12
	this.lifeMax = 8000
	this.HitSound = SoundID.NPCHit8
	this.DeathSound = SoundID.NPCDeath10
	this.noGravity = true
	this.noTileCollide = true
	this.behindTiles = true
	this.knockBackResist = 0
	this.scale = 1.2
	this.boss = true
	this.value = 80000
elseif (this.type == 114) then
	this.width = 100
	this.height = 100
	this.aiStyle = 28
	this.damage = 50
	this.defense = 0
	this.lifeMax = 8000
	this.HitSound = SoundID.NPCHit8
	this.DeathSound = SoundID.NPCDeath10
	this.noGravity = true
	this.noTileCollide = true
	this.behindTiles = true
	this.knockBackResist = 0
	this.scale = 1.2
	this.value = 80000
elseif (this.type == 115) then
	this.width = 30
	this.height = 30
	this.aiStyle = 29
	this.damage = 30
	this.defense = 10
	this.lifeMax = 240
	this.HitSound = SoundID.NPCHit9
	this.DeathSound = SoundID.NPCDeath11
	this.noGravity = true
	this.behindTiles = true
	this.noTileCollide = true
	this.knockBackResist = 1.1
elseif (this.type == 116) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 30
	this.defense = 6
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit9
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath12
elseif (this.type == 117) then
	this.width = 14
	this.height = 14
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 26
	this.defense = 2
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit9
	this.DeathSound = SoundID.NPCDeath12
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
elseif (this.type == 118) then
	this.width = 14
	this.height = 14
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 22
	this.defense = 6
	this.lifeMax = 60
	if (Main.getGoodWorld) then
		this.damage = this.damage + 10
		this.defense = this.defense + 14
		this.lifeMax = this.lifeMax * 3
	end
	this.HitSound = SoundID.NPCHit9
	this.DeathSound = SoundID.NPCDeath12
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
elseif (this.type == 119) then
	this.width = 14
	this.height = 14
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 18
	this.defense = 10
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit9
	this.DeathSound = SoundID.NPCDeath12
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
elseif (this.type == 120) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 40
	this.defense = 30
	this.lifeMax = 370
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.4
	this.value = 600
elseif (this.type == 121) then
	this.width = 40
	this.height = 30
	this.aiStyle = 14
	this.damage = 45
	this.defense = 20
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.alpha = 55
	this.knockBackResist = 0.8
	this.scale = 1.1
elseif (this.type == 122) then
	this.noGravity = true
	this.width = 20
	this.height = 20
	this.aiStyle = 22
	this.damage = 60
	this.defense = 22
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.value = 600
elseif (this.type == 123) then
	this.friendly = true
	this.width = 18
	this.height = 34
	this.aiStyle = 0
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.scale = 0.9
	this.rarity = 1
elseif (this.type == 124) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 125) then
	this.width = 100
	this.height = 110
	this.aiStyle = 30
	this.defense = 10
	this.damage = 45
	this.lifeMax = 20000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath14
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	SpawnWithHigherTime(30)
	this.boss = true
	this.value = 120000
	this.npcSlots = 5
elseif (this.type == 126) then
	this.width = 100
	this.height = 110
	this.aiStyle = 31
	this.defense = 10
	this.damage = 50
	this.lifeMax = 23000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath14
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	SpawnWithHigherTime(30)
	this.boss = true
	this.value = 120000
	this.npcSlots = 5
elseif (this.type == 127) then
	this.width = 80
	this.height = 102
	this.aiStyle = 32
	this.damage = 47
	this.defense = 24
	this.lifeMax = 28000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.value = 120000
	this.knockBackResist = 0
	this.boss = true
	this.npcSlots = 6
elseif (this.type == 128) then
	this.width = 52
	this.height = 52
	this.aiStyle = 35
	this.damage = 30
	this.defense = 23
	this.lifeMax = 7000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.netAlways = true
elseif (this.type == 129) then
	this.width = 52
	this.height = 52
	this.aiStyle = 33
	this.damage = 56
	this.defense = 38
	this.lifeMax = 9000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.netAlways = true
elseif (this.type == 130) then
	this.width = 52
	this.height = 52
	this.aiStyle = 34
	this.damage = 52
	this.defense = 34
	this.lifeMax = 9000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.netAlways = true
elseif (this.type == 131) then
	this.width = 52
	this.height = 52
	this.aiStyle = 36
	this.damage = 29
	this.defense = 20
	this.lifeMax = 6000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.netAlways = true
elseif (this.type == 132) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 15
	this.defense = 5
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 65
elseif (this.type == 133) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 40
	this.defense = 20
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 134) then
	this.npcSlots = 5
	this.width = 38
	this.height = 38
	this.aiStyle = 37
	this.defense = 0
	this.damage = 70
	this.lifeMax = 80000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 120000
	this.scale = 1.25
	this.boss = true
	this.netAlways = true
	this.alpha = 255
elseif (this.type == 135) then
	this.npcSlots = 5
	this.width = 38
	this.height = 38
	this.aiStyle = 37
	this.damage = 55
	this.defense = 30
	this.lifeMax = 80000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.netAlways = true
	this.scale = 1.25
	this.dontCountMe = true
	this.alpha = 255
elseif (this.type == 136) then
	this.npcSlots = 5
	this.width = 38
	this.height = 38
	this.aiStyle = 37
	this.damage = 40
	this.defense = 35
	this.lifeMax = 80000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.scale = 1.25
	this.netAlways = true
	this.dontCountMe = true
	this.alpha = 255
elseif (this.type == 139) then
	this.npcSlots = 1
	this.width = 30
	this.height = 30
	this.aiStyle = 5
	this.damage = 50
	this.defense = 20
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.noGravity = true
	this.knockBackResist = 0.8
	this.noTileCollide = true
elseif (this.type == 137) then
	this.width = 26
	this.height = 20
	this.aiStyle = 14
	this.damage = 75
	this.defense = 30
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.75
	this.DeathSound = SoundID.NPCDeath6
	this.value = 500
elseif (this.type == 138) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 70
	this.defense = 30
	this.lifeMax = 180
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.alpha = 100
	this.value = 400
	this.knockBackResist = 0.85
	this.scale = 1.05
elseif (this.type == 140) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 55
	this.defense = 28
	this.lifeMax = 260
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.4
	this.value = 400
elseif (this.type == 141) then
	this.width = 34
	this.height = 28
	this.aiStyle = 1
	this.damage = 50
	this.defense = 18
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 55
	this.value = 400
	this.scale = 1.1
	this.knockBackResist = 0.8
elseif (this.type == 142) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 143) then
	this.width = 26
	this.height = 40
	this.aiStyle = 38
	this.damage = 50
	this.defense = 20
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit11
	this.DeathSound = SoundID.NPCDeath15
	this.knockBackResist = 0.6
	this.value = 400
	this.coldDamage = true
elseif (this.type == 144) then
	this.width = 26
	this.height = 40
	this.aiStyle = 38
	this.damage = 65
	this.defense = 26
	this.lifeMax = 240
	this.HitSound = SoundID.NPCHit11
	this.DeathSound = SoundID.NPCDeath15
	this.knockBackResist = 0.6
	this.value = 400
	this.coldDamage = true
elseif (this.type == 145) then
	this.width = 26
	this.height = 40
	this.aiStyle = 38
	this.damage = 55
	this.defense = 22
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit11
	this.DeathSound = SoundID.NPCDeath15
	this.knockBackResist = 0.6
	this.value = 400
	this.coldDamage = true
elseif (this.type == 147) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 8
	this.defense = 4
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 50
	this.value = 50
	this.coldDamage = true
elseif (this.type == 148) then
	this.width = 16
	this.height = 34
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2205
elseif (this.type == 149) then
	this.width = 16
	this.height = 34
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2205
elseif (this.type == 150) then
	this.npcSlots = 0.5
	this.width = 22
	this.height = 22
	this.aiStyle = 14
	this.damage = 18
	this.defense = 6
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath4
	this.value = 250
	this.coldDamage = true
elseif (this.type == 151) then
	this.npcSlots = 0.5
	this.width = 22
	this.height = 22
	this.aiStyle = 14
	this.damage = 50
	this.defense = 16
	this.lifeMax = 160
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath4
	this.value = 400
	this.scale = 1.15
	this.lavaImmune = true
elseif (this.type == 152) then
	this.npcSlots = 0.5
	this.width = 38
	this.height = 34
	this.aiStyle = 14
	this.damage = 80
	this.defense = 24
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.65
	this.DeathSound = SoundID.NPCDeath4
	this.value = 400
elseif (this.type == 153) then
	this.npcSlots = 2
	this.width = 46
	this.height = 32
	this.aiStyle = 39
	this.damage = 80
	this.defense = 30
	this.lifeMax = 470
	this.HitSound = SoundID.NPCHit24
	this.knockBackResist = 0.3
	this.DeathSound = SoundID.NPCDeath27
	this.value = 500
	this.noGravity = false
elseif (this.type == 154) then
	this.npcSlots = 1.5
	this.width = 46
	this.height = 32
	this.aiStyle = 39
	this.damage = 55
	this.defense = 28
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit24
	this.knockBackResist = 0.3
	this.DeathSound = SoundID.NPCDeath27
	this.value = 450
	this.noGravity = false
	this.coldDamage = true
elseif (this.type == 155) then
	this.width = 46
	this.height = 30
	this.aiStyle = 26
	this.damage = 65
	this.defense = 30
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.value = 1000
elseif (this.type == 156) then
	this.npcSlots = 2
	this.width = 28
	this.height = 48
	this.aiStyle = 14
	this.damage = 50
	this.defense = 40
	this.lifeMax = 600
	this.HitSound = SoundID.NPCHit21
	this.knockBackResist = 0.5
	this.DeathSound = SoundID.NPCDeath24
	this.value = 1200
	this.lavaImmune = true
elseif (this.type == 157) then
	this.npcSlots = 0.5
	this.noGravity = true
	this.width = 74
	this.height = 20
	this.aiStyle = 16
	this.damage = 75
	this.defense = 30
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 160) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 161) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 16
	this.defense = 8
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 80
elseif (this.type == 163) then
	this.width = 50
	this.height = 20
	this.aiStyle = 3
	this.damage = 90
	this.defense = 40
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit29
	this.DeathSound = SoundID.NPCDeath32
	this.knockBackResist = 0.25
	this.value = 500
	this.npcSlots = 0.5
	SpawnWithHigherTime(2)
elseif (this.type == 238) then
	this.noGravity = true
	this.width = 36
	this.height = 36
	this.aiStyle = 40
	this.damage = 100
	this.defense = 40
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit29
	this.DeathSound = SoundID.NPCDeath32
	this.knockBackResist = 0.25
	this.value = 500
	SpawnWithHigherTime(2)
	this.npcSlots = 0.5
elseif (this.type == 164) then
	this.width = 50
	this.height = 20
	this.aiStyle = 3
	this.damage = 30
	this.defense = 10
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit29
	this.DeathSound = SoundID.NPCDeath32
	this.knockBackResist = 0.25
	this.value = 100
	SpawnWithHigherTime(2)
	this.npcSlots = 0.5
elseif (this.type == 165) then
	this.noGravity = true
	this.width = 36
	this.height = 36
	this.aiStyle = 40
	this.damage = 30
	this.defense = 10
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit29
	this.DeathSound = SoundID.NPCDeath32
	this.knockBackResist = 0.25
	this.value = 100
	SpawnWithHigherTime(2)
	this.npcSlots = 0.5
elseif (this.type == 167) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 24
	this.defense = 10
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 200
elseif (this.type == 168) then
	this.width = 16
	this.height = 34
	this.aiStyle = 3
	this.damage = 20
	this.defense = 4
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 169) then
	this.noGravity = true
	this.width = 18
	this.height = 40
	this.aiStyle = 22
	this.damage = 55
	this.defense = 20
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit5
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath7
	this.value = 1500
	this.coldDamage = true
elseif (this.type == 170) then
	this.width = 44
	this.height = 36
	this.aiStyle = 2
	this.damage = 70
	this.defense = 16
	this.lifeMax = 210
	this.HitSound = SoundID.NPCHit27
	this.DeathSound = SoundID.NPCDeath30
	this.knockBackResist = 0.5
	this.value = 2000
elseif (this.type == 171) then
	this.width = 44
	this.height = 36
	this.aiStyle = 2
	this.damage = 70
	this.defense = 16
	this.lifeMax = 210
	this.HitSound = SoundID.NPCHit27
	this.DeathSound = SoundID.NPCDeath30
	this.knockBackResist = 0.5
	this.value = 2000
elseif (this.type == 172) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 200
	this.defense = 30
	this.lifeMax = 600
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.3
	this.value = 5000
	this.rarity = 4
elseif (this.type == 173) then
	this.npcSlots = 1
	this.width = 30
	this.height = 30
	this.aiStyle = 5
	this.damage = 22
	this.defense = 8
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.knockBackResist = 0.5
	this.value = 90
	if (Main.remixWorld) then
		this.scale = this.scale * 1.3
		this.damage = math.floor(this.damage * this.scale)
		this.defense = math.floor(this.defense * this.scale)
		this.lifeMax = math.floor(this.lifeMax * this.scale)
		this.value = (math.floor(this.value * this.scale))
	end
elseif (this.type == 174) then
	this.npcSlots = 1
	this.width = 52
	this.height = 26
	this.aiStyle = 41
	this.damage = 65
	this.defense = 26
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.value = 450
elseif (this.type == 175) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 30
	this.height = 30
	this.aiStyle = 13
	this.damage = 100
	this.defense = 30
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.25
	this.DeathSound = SoundID.NPCDeath1
	this.value = 650
elseif (this.type == 176) then
	this.width = 34
	this.height = 32
	this.aiStyle = 5
	this.damage = 70
	this.defense = 22
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.5
	this.DeathSound = SoundID.NPCDeath1
	this.value = 600
	this.noGravity = true
	this.npcSlots = 1.5
elseif (this.type == 177) then
	this.npcSlots = 1
	this.width = 58
	this.height = 44
	this.aiStyle = 41
	this.damage = 80
	this.defense = 26
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit22
	this.DeathSound = SoundID.NPCDeath25
	this.knockBackResist = 0.5
	this.value = 500
elseif (this.type == 178) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 179) then
	this.width = 40
	this.height = 40
	this.aiStyle = 23
	this.damage = 80
	this.defense = 18
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.value = 1000
	this.knockBackResist = 0.4
elseif (this.type == 180) then
	this.width = 44
	this.height = 36
	this.aiStyle = 2
	this.damage = 70
	this.defense = 16
	this.lifeMax = 210
	this.HitSound = SoundID.NPCHit27
	this.DeathSound = SoundID.NPCDeath30
	this.knockBackResist = 0.5
	this.value = 2000
elseif (this.type == 181) then
	this.width = 18
	this.height = 44
	this.aiStyle = 3
	this.damage = 25
	this.defense = 10
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 200
	if (Main.remixWorld) then
		this.scale = this.scale * 1.1
		this.damage = math.floor((double)(this.damage * this.scale) * 1.2)
		this.defense = math.floor((double)(this.defense * this.scale) * 1.2)
		this.lifeMax = math.floor((double)(this.lifeMax * this.scale) * 1.2)
		this.value = (math.floor((double)(this.value * this.scale) * 1.2))
	end
elseif (this.type == 182) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 24
	this.height = 62
	this.aiStyle = 22
	this.damage = 65
	this.defense = 18
	this.lifeMax = 240
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.alpha = 100
	this.value = 500
	this.knockBackResist = 0.7
elseif (this.type == 183) then
	this.width = 40
	this.height = 30
	this.aiStyle = 1
	this.damage = 60
	this.defense = 26
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 55
	this.value = 400
	this.scale = 1.1
elseif (this.type == 184) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 12
	this.defense = 8
	this.lifeMax = 60
	this.scale = 1.1
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 50
	this.value = 200
	this.coldDamage = true
elseif (this.type == 185) then
	this.width = 28
	this.height = 28
	this.aiStyle = 3
	this.damage = 26
	this.defense = 12
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 1.1
	this.value = 200
	this.coldDamage = true
elseif (this.type == 186) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 16
	this.defense = 8
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 65
elseif (this.type == 187) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 13
	this.defense = 6
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.55
	this.value = 55
elseif (this.type == 188) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 13
	this.defense = 8
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 80
elseif (this.type == 189) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 16
	this.defense = 4
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.55
	this.value = 70
elseif (this.type == 190) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 18
	this.defense = 4
	this.lifeMax = 65
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.7
	this.DeathSound = SoundID.NPCDeath1
	this.value = 75
elseif (this.type == 191) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 16
	this.defense = 2
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.85
	this.DeathSound = SoundID.NPCDeath1
	this.value = 75
elseif (this.type == 192) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 18
	this.defense = 2
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.value = 75
elseif (this.type == 193) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 20
	this.defense = 0
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.value = 75
elseif (this.type == 194) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 14
	this.defense = 4
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.value = 75
elseif (this.type == 195) then
	this.width = 18
	this.height = 40
	this.aiStyle = 42
	this.damage = 10
	this.defense = 30
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.rarity = 2
	this.value = Item.buyPrice(0, 2, 0, 0)
elseif (this.type == 196) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 35
	this.defense = 16
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = Item.buyPrice(0, 2, 0, 0)
	this.rarity = 2
elseif (this.type == 197) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 50
	this.defense = 28
	this.lifeMax = 280
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 500
elseif (this.type == 198) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 38
	this.defense = 20
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit26
	this.DeathSound = SoundID.NPCDeath29
	this.knockBackResist = 0.4
	this.value = 650
elseif (this.type == 199) then
	this.width = 42
	this.height = 30
	this.aiStyle = 3
	this.damage = 60
	this.defense = 30
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit26
	this.DeathSound = SoundID.NPCDeath29
	this.knockBackResist = 0
	this.value = 650
elseif (this.type == 200) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 12
	this.defense = 4
	this.lifeMax = 38
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.6
	this.value = 65
elseif (this.type == 201) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 12
	this.lifeMax = 55
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 130
elseif (this.type == 202) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 18
	this.defense = 8
	this.lifeMax = 65
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 120
elseif (this.type == 203) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 22
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 110
elseif (this.type == 204) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 28
	this.defense = 8
	this.lifeMax = 65
	this.scale = 1.15
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 50
	this.value = 300
elseif (this.type == 205) then
	this.width = 40
	this.height = 40
	this.aiStyle = 5
	this.damage = 70
	this.defense = 28
	this.lifeMax = 1000
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.4
	this.DeathSound = SoundID.NPCDeath1
	this.value = 600
	this.noGravity = true
	this.rarity = 2
elseif (this.type == 206) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 60
	this.defense = 30
	this.lifeMax = 280
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.value = 500
	this.coldDamage = true
elseif (this.type == 207) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 208) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 209) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 210) then
	this.width = 12
	this.height = 12
	this.aiStyle = 5
	this.damage = 20
	this.defense = 5
	this.lifeMax = 20
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.5
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
elseif (this.type == 211) then
	this.width = 8
	this.height = 8
	this.aiStyle = 5
	this.damage = 15
	this.defense = 2
	this.lifeMax = 10
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.5
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
elseif (this.type == 212) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 35
	this.defense = 17
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
	this.value = 700
elseif (this.type == 213) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 50
	this.defense = 22
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.2
	this.value = 1000
elseif (this.type == 214) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 30
	this.defense = 14
	this.lifeMax = 225
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.value = 1000
elseif (this.type == 215) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 35
	this.defense = 20
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.35
	this.value = 1500
elseif (this.type == 216) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 30
	this.lifeMax = 3000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.value = 50000
	this.rarity = 1
elseif (this.type == 217) then
	this.width = 28
	this.height = 20
	this.aiStyle = 3
	this.damage = 20
	this.defense = 10
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath16
	this.value = 60
	this.rarity = 1
elseif (this.type == 218) then
	this.width = 28
	this.height = 20
	this.aiStyle = 3
	this.damage = 20
	this.defense = 10
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath16
	this.value = 60
	this.rarity = 1
elseif (this.type == 219) then
	this.width = 28
	this.height = 20
	this.aiStyle = 3
	this.damage = 20
	this.defense = 10
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath16
	this.value = 60
	this.rarity = 1
elseif (this.type == 220) then
	this.width = 28
	this.height = 20
	this.aiStyle = 3
	this.damage = 20
	this.defense = 10
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 60
	this.rarity = 2
elseif (this.type == 221) then
	this.noGravity = true
	this.width = 26
	this.height = 26
	this.aiStyle = 18
	this.damage = 20
	this.defense = 2
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 100
	this.alpha = 20
	this.rarity = 1
elseif (this.type == 222) then
	this.width = 66
	this.height = 66
	this.aiStyle = 43
	this.damage = 30
	this.defense = 8
	this.lifeMax = 3400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath66
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	SpawnWithHigherTime(30)
	this.boss = true
	this.value = 50000
	this.npcSlots = 7
elseif (this.type == 223) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 16
	this.defense = 8
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.45
	this.value = 70
elseif (this.type == 224) then
	this.width = 32
	this.height = 18
	this.aiStyle = 44
	this.damage = 9
	this.defense = 4
	this.lifeMax = 20
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.value = 300
end
if (this.type == 225) then
	this.width = 38
	this.height = 26
	this.aiStyle = 1
	this.damage = 10
	this.defense = 5
	this.lifeMax = 35
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.75
	this.value = 200
elseif (this.type == 226) then
	this.npcSlots = 0.5
	this.width = 34
	this.height = 50
	this.aiStyle = 14
	this.damage = 85
	this.defense = 28
	this.lifeMax = 260
	this.HitSound = SoundID.NPCHit23
	this.knockBackResist = 0.65
	this.DeathSound = SoundID.NPCDeath26
	this.value = 400
elseif (this.type == 227) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 228) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 229) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 230) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 261
elseif (this.type == 231) then
	this.width = 34
	this.height = 32
	this.aiStyle = 5
	this.damage = 22
	this.defense = 16
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.3
	this.DeathSound = SoundID.NPCDeath1
	this.value = 200
	this.noGravity = true
elseif (this.type == 232) then
	this.width = 34
	this.height = 32
	this.aiStyle = 5
	this.damage = 28
	this.defense = 12
	this.lifeMax = 42
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath1
	this.value = 200
	this.noGravity = true
elseif (this.type == 233) then
	this.width = 34
	this.height = 32
	this.aiStyle = 5
	this.damage = 30
	this.defense = 14
	this.lifeMax = 38
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.45
	this.DeathSound = SoundID.NPCDeath1
	this.value = 200
	this.noGravity = true
elseif (this.type == 234) then
	this.width = 34
	this.height = 32
	this.aiStyle = 5
	this.damage = 32
	this.defense = 6
	this.lifeMax = 42
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.55
	this.DeathSound = SoundID.NPCDeath1
	this.value = 200
	this.noGravity = true
elseif (this.type == 235) then
	this.width = 34
	this.height = 32
	this.aiStyle = 5
	this.damage = 34
	this.defense = 4
	this.lifeMax = 38
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath1
	this.value = 200
	this.noGravity = true
elseif (this.type == 236) then
	this.width = 50
	this.height = 20
	this.aiStyle = 3
	this.damage = 100
	this.defense = 28
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.25
	this.value = 1000
	SpawnWithHigherTime(2)
	this.npcSlots = 0.75
elseif (this.type == 237) then
	this.noGravity = true
	this.width = 36
	this.height = 36
	this.aiStyle = 40
	this.damage = 100
	this.defense = 28
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.25
	this.value = 1000
	SpawnWithHigherTime(2)
	this.npcSlots = 0.75
elseif (this.type == 239) then
	this.width = 50
	this.height = 20
	this.aiStyle = 3
	this.damage = 30
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit20
	this.DeathSound = SoundID.NPCDeath23
	this.knockBackResist = 0.5
	this.value = 130
	SpawnWithHigherTime(2)
elseif (this.type == 240) then
	this.noGravity = true
	this.width = 36
	this.height = 36
	this.aiStyle = 40
	this.damage = 30
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit20
	this.DeathSound = SoundID.NPCDeath23
	this.knockBackResist = 0.5
	this.value = 130
	SpawnWithHigherTime(2)
elseif (this.type == 241) then
	this.npcSlots = 0.5
	this.noGravity = true
	this.width = 18
	this.height = 20
	this.aiStyle = 16
	this.damage = 50
	this.defense = 20
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit13
	this.DeathSound = SoundID.NPCDeath19
	this.value = 500
elseif (this.type == 242) then
	this.noGravity = true
	this.width = 26
	this.height = 26
	this.aiStyle = 18
	this.damage = 75
	this.defense = 20
	this.lifeMax = 150
	this.HitSound = SoundID.NPCHit13
	this.DeathSound = SoundID.NPCDeath19
	this.value = 800
	this.alpha = 20
elseif (this.type == 243) then
	this.width = 30
	this.height = 114
	this.aiStyle = 3
	this.damage = 60
	this.defense = 32
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit5
	this.DeathSound = SoundID.NPCDeath7
	this.knockBackResist = 0.05
	this.value = Item.buyPrice(0, 1, 50, 0)
	this.coldDamage = true
	this.rarity = 2
elseif (this.type == 244) then
	this.width = 60
	this.height = 42
	this.aiStyle = 1
	this.damage = 85
	this.defense = 26
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 175
	this.value = Item.buyPrice(0, 0, 20, 0)
	this.knockBackResist = 0.3
	this.rarity = 1
elseif (this.type == 245) then
	this.width = 140
	this.height = 140
	this.aiStyle = 45
	this.damage = 72
	this.defense = 26
	this.lifeMax = 15000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.knockBackResist = 0
	this.value = Item.buyPrice(0, 15, 0, 0)
	this.alpha = 255
	this.boss = true
	this.npcSlots = 5
elseif (this.type == 246) then
	this.noGravity = true
	this.width = 70
	this.height = 70
	this.aiStyle = 46
	this.damage = 64
	this.defense = 20
	this.lifeMax = 25000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = null
	this.knockBackResist = 0
	this.alpha = 255
elseif (this.type == 247 or this.type == 248) then
	this.noGravity = true
	this.width = 40
	this.height = 30
	this.aiStyle = 47
	this.damage = 59
	this.defense = 28
	this.lifeMax = 10000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.alpha = 255
	this.knockBackResist = 0
elseif (this.type == 249) then
	this.noGravity = true
	this.width = 70
	this.height = 70
	this.aiStyle = 48
	this.damage = 80
	this.defense = 32
	this.lifeMax = 16000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.knockBackResist = 0
	this.dontTakeDamage = true
elseif (this.type == 250) then
	this.width = 34
	this.height = 26
	this.aiStyle = 49
	this.damage = 50
	this.defense = 24
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit30
	this.DeathSound = SoundID.NPCDeath33
	this.knockBackResist = 0.3
	this.value = 300
elseif (this.type == 251) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 50
	this.defense = 30
	this.lifeMax = 1000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.3
	this.value = Item.buyPrice(0, 0, 50, 0)
	this.rarity = 2
elseif (this.type == 252) then
	this.noGravity = true
	this.npcSlots = 0.5
	this.width = 32
	this.height = 32
	this.aiStyle = 5
	this.damage = 80
	this.defense = 12
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit46
	this.knockBackResist = 0.7
	this.DeathSound = SoundID.NPCDeath48
	this.value = 500
elseif (this.type == 254) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 40
	this.defense = 10
	this.lifeMax = 180
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.4
	this.value = 1000
elseif (this.type == 255) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 38
	this.defense = 16
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.3
	this.value = 1200
elseif (this.type == 256) then
	this.noGravity = true
	this.width = 26
	this.height = 26
	this.aiStyle = 18
	this.damage = 90
	this.defense = 20
	this.lifeMax = 140
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.value = 1200
	this.alpha = 20
	this.npcSlots = 0.3
elseif (this.type == 257) then
	this.width = 44
	this.height = 34
	this.aiStyle = 3
	this.damage = 38
	this.defense = 24
	this.lifeMax = 230
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.3
	this.value = 1300
	this.npcSlots = 0.3
elseif (this.type == 258) then
	this.width = 30
	this.height = 24
	this.aiStyle = 3
	this.damage = 60
	this.defense = 16
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit45
	this.DeathSound = SoundID.NPCDeath47
	this.knockBackResist = 0.3
	this.value = 1500
	this.npcSlots = 0.3
elseif (this.type == 259) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 20
	this.height = 20
	this.aiStyle = 13
	this.damage = 24
	this.defense = 4
	this.lifeMax = 90
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0
	this.DeathSound = SoundID.NPCDeath1
	this.value = 350
	this.npcSlots = 0.3
elseif (this.type == 260) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 36
	this.height = 36
	this.aiStyle = 13
	this.damage = 70
	this.defense = 20
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0
	this.DeathSound = SoundID.NPCDeath1
	this.value = 1250
	this.npcSlots = 0.3
elseif (this.type == 261) then
	this.width = 12
	this.height = 12
	this.aiStyle = 50
	this.damage = 80
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.npcSlots = 0
elseif (this.type == 262) then
	this.noTileCollide = true
	this.width = 86
	this.height = 86
	this.aiStyle = 51
	this.damage = 50
	this.defense = 14
	this.lifeMax = 30000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.value = Item.buyPrice(0, 15, 0, 0)
	this.noGravity = true
	this.boss = true
	this.npcSlots = 16
elseif (this.type == 263) then
	this.noTileCollide = true
	this.noGravity = true
	this.width = 40
	this.height = 40
	this.aiStyle = 52
	this.damage = 60
	this.defense = 24
	this.lifeMax = 4000
	this.dontTakeDamage = true
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
elseif (this.type == 264) then
	this.width = 24
	this.height = 24
	this.aiStyle = 53
	this.damage = 60
	this.defense = 20
	this.lifeMax = 1000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
elseif (this.type == 265) then
	this.width = 18
	this.height = 18
	this.aiStyle = 50
	this.damage = 70
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.npcSlots = 0
elseif (this.type == 266) then
	this.dontTakeDamage = true
	this.width = 160
	this.height = 110
	this.aiStyle = 54
	this.damage = 30
	this.defense = 14
	this.lifeMax = 1250
	this.HitSound = SoundID.NPCHit9
	this.DeathSound = SoundID.NPCDeath11
	this.knockBackResist = 0.45
	this.noGravity = true
	this.noTileCollide = true
	SpawnWithHigherTime(30)
	this.boss = true
	this.value = 50000
	this.npcSlots = 6
elseif (this.type == 267) then
	this.width = 30
	this.height = 30
	this.aiStyle = 55
	this.damage = 20
	this.defense = 10
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit9
	this.DeathSound = SoundID.NPCDeath11
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.8
elseif (this.type == 268) then
	this.noGravity = true
	this.width = 28
	this.height = 56
	this.aiStyle = 22
	this.damage = 55
	this.defense = 20
	this.lifeMax = 340
	this.HitSound = SoundID.NPCHit13
	this.DeathSound = SoundID.NPCDeath19
	this.knockBackResist = 0.6
	this.value = 450
elseif (this.type == 269) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 34
	this.lifeMax = 550
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.3
	this.value = 1000
elseif (this.type == 270) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 55
	this.defense = 50
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.2
	this.value = 1000
elseif (this.type == 271) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 40
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.25
	this.value = 1000
elseif (this.type == 272) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 75
	this.defense = 28
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.35
	this.value = 1000
elseif (this.type == 273) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 45
	this.defense = 50
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.15
	this.value = 1000
elseif (this.type == 274) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 65
	this.defense = 34
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 1000
elseif (this.type == 275) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 45
	this.defense = 50
	this.lifeMax = 550
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.15
	this.value = 1000
elseif (this.type == 276) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 85
	this.defense = 54
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.2
	this.value = 1000
elseif (this.type == 277) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 32
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 1000
elseif (this.type == 278) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 65
	this.defense = 48
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.3
	this.value = 1000
elseif (this.type == 279) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 40
	this.defense = 54
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.2
	this.value = 1000
elseif (this.type == 280) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 75
	this.defense = 34
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 1000
elseif (this.type == 281) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 40
	this.defense = 20
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.6
	this.value = 1500
	this.npcSlots = 2
elseif (this.type == 282) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 35
	this.defense = 28
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 1500
	this.npcSlots = 2
elseif (this.type == 283) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 50
	this.defense = 18
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.55
	this.value = 1500
	this.npcSlots = 2
elseif (this.type == 284) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 35
	this.defense = 24
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 1500
	this.npcSlots = 2
elseif (this.type == 285) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 50
	this.defense = 12
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.7
	this.value = 1500
	this.npcSlots = 2
elseif (this.type == 286) then
	this.width = 18
	this.height = 40
	this.aiStyle = 8
	this.damage = 60
	this.defense = 10
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.65
	this.value = 1500
	this.npcSlots = 2
elseif (this.type == 287) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 90
	this.defense = 42
	this.lifeMax = 1000
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.3
	this.value = 2000
	this.rarity = 1
elseif (this.type == 288) then
	this.width = 20
	this.height = 20
	this.aiStyle = 56
	this.damage = 70
	this.defense = 30
	this.lifeMax = 200
	this.knockBackResist = 0.2
	this.HitSound = SoundID.NPCHit36
	this.DeathSound = SoundID.NPCDeath39
	this.value = 500
	this.noTileCollide = true
	this.noGravity = true
elseif (this.type == 289) then
	this.width = 44
	this.height = 44
	this.aiStyle = 10
	this.damage = 60
	this.defense = 20
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.noGravity = true
	this.noTileCollide = true
	this.value = 150
	this.knockBackResist = 0.2
	this.npcSlots = 0.75
elseif (this.type == 290) then
	this.width = 34
	this.height = 62
	this.aiStyle = 3
	this.damage = 100
	this.defense = 50
	this.lifeMax = 5000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0
	this.value = 50000
	this.rarity = 2
elseif (this.type == 291) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 60
	this.defense = 28
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 1000
	this.rarity = 1
elseif (this.type == 292) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 60
	this.defense = 28
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 1000
	this.rarity = 1
elseif (this.type == 293) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 60
	this.defense = 28
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 1000
	this.rarity = 1
elseif (this.type == 294) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 34
	this.defense = 6
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.9
	this.value = 130
elseif (this.type == 295) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 28
	this.defense = 12
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.7
	this.value = 130
elseif (this.type == 296) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 24
	this.defense = 14
	this.lifeMax = 120
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.6
	this.value = 130
elseif (this.type == 299) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2018
elseif (this.type == 300) then
	this.width = 14
	this.height = 12
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath4
	this.npcSlots = 0.25
	this.catchItem = 2003
elseif (this.type == 301) then
	this.width = 36
	this.height = 26
	this.aiStyle = 17
	this.damage = 12
	this.defense = 2
	this.lifeMax = 35
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.85
	this.DeathSound = SoundID.NPCDeath1
	this.value = 50
end
if (this.type == 302) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 7
	this.defense = 2
	this.lifeMax = 25
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 25
elseif (this.type == 304) then
	this.width = 34
	this.height = 28
	this.aiStyle = 1
	this.damage = 80
	this.defense = 20
	this.lifeMax = 175
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
	this.scale = 1.1
	this.knockBackResist = 0.5
	this.npcSlots = 0.3
elseif (this.type >= 305 and this.type <= 314) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.value = 1200
	this.npcSlots = 0.5
	if (this.type == 305 or this.type == 310) then
		this.damage = 60
		this.defense = 18
		this.lifeMax = 500
		this.knockBackResist = 0.4
	elseif (this.type == 306 or this.type == 311) then
		this.damage = 52
		this.defense = 14
		this.lifeMax = 400
		this.knockBackResist = 0.2
		this.scale = 1.05
	elseif (this.type == 307 or this.type == 312) then
		this.damage = 78
		this.defense = 16
		this.lifeMax = 600
		this.knockBackResist = 0.25
		this.scale = 0.9
	elseif (this.type == 308 or this.type == 313) then
		this.damage = 66
		this.defense = 14
		this.lifeMax = 650
		this.knockBackResist = 0.35
		this.scale = 0.95
	elseif (this.type == 309 or this.type == 314) then
		this.damage = 52
		this.defense = 26
		this.lifeMax = 450
		this.knockBackResist = 0.5
		this.scale = 1.1
	end
elseif (this.type == 315) then
	this.width = 74
	this.height = 70
	this.aiStyle = 26
	this.damage = 130
	this.defense = 40
	this.lifeMax = 5000
	this.HitSound = SoundID.NPCHit12
	this.DeathSound = SoundID.NPCDeath18
	this.knockBackResist = 0
	this.value = 10000
elseif (this.type == 316) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 24
	this.height = 44
	this.aiStyle = 22
	this.damage = 15
	this.defense = 4
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.alpha = 100
	this.value = 90
	this.knockBackResist = 0.5
elseif (this.type == 317) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 16
	this.defense = 6
	this.lifeMax = 75
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.7
	this.DeathSound = SoundID.NPCDeath1
	this.value = 100
elseif (this.type == 318) then
	this.width = 30
	this.height = 32
	this.aiStyle = 2
	this.damage = 20
	this.defense = 4
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.65
	this.DeathSound = SoundID.NPCDeath1
	this.value = 100
elseif (this.type == 319) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 6
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.6
	this.value = 85
	this.scale = 0.9
elseif (this.type == 320) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 15
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 105
	this.scale = 1.05
elseif (this.type == 321) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 14
	this.lifeMax = 34
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.3
	this.value = 120
	this.scale = 1.1
elseif (this.type == 322) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 23
	this.defense = 0
	this.lifeMax = 115
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.65
	this.value = 130
elseif (this.type == 323) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 18
	this.defense = 10
	this.lifeMax = 65
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 120
elseif (this.type == 324) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 22
	this.defense = 10
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 130
	this.scale = 1.05
elseif (this.type == 325) then
	this.width = 164
	this.height = 154
	this.aiStyle = 57
	this.damage = 120
	this.defense = 34
	this.lifeMax = 14000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath5
	this.knockBackResist = 0
	this.value = 10000
	this.npcSlots = 3
elseif (this.type == 326) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 100
	this.defense = 32
	this.lifeMax = 1200
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.2
	this.value = 2000
elseif (this.type == 327) then
	this.width = 100
	this.height = 100
	this.aiStyle = 58
	this.damage = 50
	this.defense = 40
	this.lifeMax = 26000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.value = 50000
	this.knockBackResist = 0
	this.npcSlots = 5
elseif (this.type == 328) then
	this.width = 80
	this.height = 80
	this.aiStyle = 59
	this.damage = 65
	this.defense = 14
	this.lifeMax = 5000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.dontTakeDamage = true
	this.npcSlots = 0
	this.dontCountMe = true
elseif (this.type == 329) then
	this.width = 46
	this.height = 30
	this.aiStyle = 26
	this.damage = 80
	this.defense = 38
	this.lifeMax = 1800
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath5
	this.knockBackResist = 0.3
	this.value = 3000
elseif (this.type == 330) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 24
	this.height = 44
	this.aiStyle = 22
	this.damage = 90
	this.defense = 44
	this.lifeMax = 1250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.alpha = 100
	this.value = 4500
	this.knockBackResist = 0.4
elseif (this.type == 331) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 6
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 60
elseif (this.type == 332) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 6
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 60
end
if (this.type == 333) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 7
	this.defense = 2
	this.lifeMax = 25
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 25
end
if (this.type == 334) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 6
	this.defense = 2
	this.lifeMax = 23
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.scale = 0.9
	this.value = 25
end
if (this.type == 335) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 8
	this.defense = 3
	this.lifeMax = 29
	this.scale = 1.05
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 25
end
if (this.type == 336) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 5
	this.defense = 1
	this.lifeMax = 22
	this.scale = 0.85
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 25
elseif (this.type >= 338 and this.type <= 340) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 1200
	this.npcSlots = 0.5
	if (this.type == 338) then
		this.damage = 65
		this.defense = 18
		this.lifeMax = 600
		this.knockBackResist = 0.4
	elseif (this.type == 339) then
		this.damage = 52
		this.defense = 24
		this.lifeMax = 700
		this.knockBackResist = 0.2
		this.scale = 1.05
	elseif (this.type == 340) then
		this.damage = 78
		this.defense = 14
		this.lifeMax = 500
		this.knockBackResist = 0.25
		this.scale = 0.9
	end
elseif (this.type == 341) then
	this.width = 24
	this.height = 24
	this.aiStyle = 25
	this.damage = 100
	this.defense = 32
	this.lifeMax = 900
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.value = Item.buyPrice(0, 0, 20, 0)
	this.knockBackResist = 0.25
elseif (this.type == 342) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 90
	this.defense = 26
	this.lifeMax = 750
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.2
	this.value = 1800
elseif (this.type == 343) then
	this.width = 38
	this.height = 78
	this.aiStyle = 3
	this.damage = 140
	this.defense = 50
	this.lifeMax = 3500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.value = 3000
	this.npcSlots = 2
	this.coldDamage = true
elseif (this.type == 344) then
	this.width = 172
	this.height = 130
	this.aiStyle = 57
	this.damage = 110
	this.defense = 38
	this.lifeMax = 13000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath5
	this.knockBackResist = 0
	this.value = 10000
	this.npcSlots = 3
elseif (this.type == 345) then
	this.width = 130
	this.height = 140
	this.aiStyle = 60
	this.damage = 120
	this.defense = 38
	this.lifeMax = 34000
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath5
	this.knockBackResist = 0
	this.value = 50000
	this.noTileCollide = true
	this.noGravity = true
	this.npcSlots = 5
	this.coldDamage = true
elseif (this.type == 346) then
	this.width = 112
	this.height = 140
	this.aiStyle = 61
	this.damage = 120
	this.defense = 56
	this.lifeMax = 18000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.knockBackResist = 0
	this.value = 10000
	this.npcSlots = 4
elseif (this.type == 347) then
	this.width = 50
	this.height = 50
	this.aiStyle = 62
	this.damage = 60
	this.defense = 28
	this.lifeMax = 1200
	this.HitSound = SoundID.NPCHit4
	this.knockBackResist = 0.4
	this.DeathSound = SoundID.NPCDeath14
	this.value = 1000
	this.noTileCollide = true
	this.noGravity = true
	this.npcSlots = 1.5
elseif (this.type == 348) then
	this.width = 28
	this.height = 76
	this.aiStyle = 3
	this.damage = 80
	this.defense = 26
	this.lifeMax = 1800
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
	this.value = 1500
	this.npcSlots = 1.5
elseif (this.type == 349) then
	this.width = 28
	this.height = 76
	this.aiStyle = 3
	this.damage = 100
	this.defense = 42
	this.lifeMax = 1800
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.1
	this.value = 1500
	this.npcSlots = 1.5
elseif (this.type == 350) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 30
	this.lifeMax = 900
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.45
	this.value = 900
elseif (this.type == 351) then
	this.width = 18
	this.height = 90
	this.aiStyle = 3
	this.damage = 100
	this.defense = 40
	this.lifeMax = 2500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.1
	this.value = 3000
	this.npcSlots = 1.75
elseif (this.type == 352) then
	this.width = 54
	this.height = 54
	this.aiStyle = 63
	this.damage = 75
	this.defense = 8
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.value = 500
	this.knockBackResist = 0.4
	this.noGravity = true
	this.noTileCollide = true
	this.npcSlots = 2
	this.coldDamage = true
elseif (this.type == 353) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 354) then
	this.friendly = true
	this.width = 18
	this.height = 34
	this.aiStyle = 0
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.scale = 0.9
	this.rarity = 1
elseif (this.type == 355) then
	this.width = 10
	this.height = 10
	this.aiStyle = 64
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.2
	this.noGravity = true
	this.catchItem = 1992
elseif (this.type == 356) then
	this.width = 10
	this.height = 10
	this.aiStyle = 65
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	this.noGravity = true
	this.catchItem = 1994
elseif (this.type == 357) then
	this.width = 10
	this.height = 4
	this.aiStyle = 66
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.1
	this.catchItem = 2002
	this.friendly = true
elseif (this.type == 358) then
	this.width = 12
	this.height = 12
	this.aiStyle = 64
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.2
	this.noGravity = true
	this.catchItem = 2004
elseif (this.type == 359) then
	this.width = 12
	this.height = 12
	this.aiStyle = 67
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.5
	this.noGravity = true
	this.catchItem = 2006
elseif (this.type == 360) then
	this.width = 14
	this.height = 14
	this.aiStyle = 67
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.5
	this.noGravity = true
	this.catchItem = 2007
elseif (this.type == 361) then
	this.width = 12
	this.height = 10
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2121
elseif (this.type == 362) then
	this.width = 22
	this.height = 26
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2122
elseif (this.type == 363) then
	this.width = 28
	this.height = 22
	this.aiStyle = 68
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2122
elseif (this.type == 364) then
	this.width = 22
	this.height = 26
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2123
elseif (this.type == 365) then
	this.width = 28
	this.height = 22
	this.aiStyle = 68
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2123
elseif (this.type == 366 or this.type == 367) then
	this.width = 26
	this.height = 18
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = (2156 + this.type - 366)
elseif (this.type == 368) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 369) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
elseif (this.type == 370) then
	this.width = 150
	this.height = 100
	this.aiStyle = 69
	this.damage = 100
	this.defense = 50
	this.lifeMax = 60000
	this.knockBackResist = 0
	this.noTileCollide = true
	this.noGravity = true
	this.npcSlots = 10
	this.HitSound = SoundID.NPCHit14
	this.DeathSound = SoundID.NPCDeath20
	this.value = 250000
	this.boss = true
	this.netAlways = true
	SpawnWithHigherTime(30)
elseif (this.type == 371) then
	this.width = 36
	this.height = 36
	this.aiStyle = 70
	this.damage = 100
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = SoundID.NPCHit3
	this.DeathSound = SoundID.NPCDeath3
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.alpha = 255
elseif (this.type == 372) then
	this.noGravity = true
	this.width = 120
	this.height = 24
	this.aiStyle = 71
	this.damage = 100
	this.defense = 100
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.alpha = 255
elseif (this.type == 373) then
	this.noGravity = true
	this.width = 100
	this.height = 24
	this.aiStyle = 71
	this.damage = 120
	this.defense = 100
	this.lifeMax = 100
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.alpha = 255
elseif (this.type == 374) then
	this.width = 20
	this.height = 10
	this.aiStyle = 66
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.15
	this.catchItem = 2673
	this.rarity = 4
	this.dontTakeDamageFromHostiles = true
elseif (this.type == 375) then
	this.width = 10
	this.height = 10
	this.aiStyle = 6
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.npcSlots = 0.15
	this.catchItem = 2673
	this.rarity = 4
	this.dontTakeDamageFromHostiles = true
elseif (this.type == 376) then
	this.friendly = true
	this.width = 34
	this.height = 8
	this.aiStyle = 0
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.scale = 0.9
	this.rarity = 1
elseif (this.type == 377) then
	this.width = 14
	this.height = 10
	this.aiStyle = 1
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.friendly = true
	this.catchItem = 2740
	this.npcSlots = 0.1
elseif (this.type == 378) then
	this.npcSlots = 1
	this.width = 20
	this.height = 26
	this.aiStyle = 41
	this.damage = 120
	this.defense = 30
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.value = 450
elseif (this.type >= 379 and this.type <= 380) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 45
	this.defense = 14
	this.lifeMax = 210
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.55
	this.value = 1000
	this.npcSlots = 0
	this.lavaImmune = true
	this.netAlways = true
	this.chaseable = false
elseif (this.type >= 381 and this.type <= 382) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 50
	this.defense = 25
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit39
	this.DeathSound = SoundID.NPCDeath57
	this.knockBackResist = 0.35
	this.value = 1000
elseif (this.type == 383) then
	this.lifeMax = 300
	this.defense = 50
	this.damage = 75
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit39
	this.DeathSound = SoundID.NPCDeath57
	this.value = 1200
	this.knockBackResist = 0.25
elseif (this.type == 384) then
	this.lifeMax = 1000
	this.width = 18
	this.defense = 20
	this.height = 40
	this.aiStyle = 72
	this.HitSound = SoundID.NPCHit43
	this.DeathSound = SoundID.NPCDeath45
	this.npcSlots = 0
	this.noTileCollide = true
	this.canGhostHeal = false
elseif (this.type == 385) then
	this.lifeMax = 750
	this.defense = 30
	this.damage = 80
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit39
	this.DeathSound = SoundID.NPCDeath57
	this.value = 600
	this.knockBackResist = 0
	this.npcSlots = 0.75
elseif (this.type == 386) then
	this.lifeMax = 400
	this.defense = 34
	this.damage = 40
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit39
	this.DeathSound = SoundID.NPCDeath57
	this.value = 1200
	this.knockBackResist = 0.4
elseif (this.type == 387) then
	this.width = 20
	this.height = 50
	this.aiStyle = 73
	this.damage = 10
	this.defense = 40
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit53
	this.DeathSound = SoundID.NPCDeath56
	this.knockBackResist = 0
	this.canGhostHeal = false
elseif (this.type == 388) then
	this.width = 40
	this.height = 30
	this.aiStyle = 74
	this.damage = 60
	this.defense = 16
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit42
	this.knockBackResist = 0.4
	this.DeathSound = SoundID.NPCDeath44
	this.value = 1000
	this.noTileCollide = true
	this.noGravity = true
	this.npcSlots = 1.5
	this.canGhostHeal = false
elseif (this.type == 389) then
	this.lifeMax = 600
	this.defense = 38
	this.damage = 75
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit39
	this.DeathSound = SoundID.NPCDeath57
	this.value = 1200
	this.npcSlots = 0.5
	this.knockBackResist = 0.3
elseif (this.type == 390) then
	this.damage = 65
	this.defense = 30
	this.lifeMax = 350
	this.width = 18
	this.height = 40
	this.aiStyle = 75
	this.HitSound = SoundID.NPCHit39
	this.DeathSound = SoundID.NPCDeath57
	this.value = 1200
	this.npcSlots = 0.5
elseif (this.type == 391) then
	this.lifeMax = 600
	this.defense = 30
	this.damage = 85
	this.width = 60
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit51
	this.DeathSound = SoundID.NPCDeath54
	this.value = 1200
	this.npcSlots = 0.5
	this.knockBackResist = 0.1
elseif (this.type == 392) then
	this.lifeMax = 100
	this.defense = 100
	this.damage = 50
	this.width = 150
	this.height = 80
	this.aiStyle = 75
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.value = 0
	this.npcSlots = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.dontTakeDamage = true
	this.netAlways = true
elseif (this.type == 393) then
	this.lifeMax = 5000
	this.defense = 20
	this.damage = 60
	this.width = 40
	this.height = 16
	this.aiStyle = 75
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.value = 0
	this.npcSlots = 1
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.netAlways = true
elseif (this.type == 394) then
	this.lifeMax = 3500
	this.defense = 20
	this.damage = 60
	this.width = 46
	this.height = 36
	this.aiStyle = 75
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.value = 0
	this.npcSlots = 1
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.netAlways = true
elseif (this.type == 395) then
	this.lifeMax = 10000
	this.defense = 0
	this.damage = 80
	this.width = 120
	this.height = 90
	this.aiStyle = 76
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.value = 0
	this.npcSlots = 6
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.dontTakeDamage = true
	this.boss = true
	this.netAlways = true
elseif (this.type == 399) then
	this.defense = 5
	this.damage = 5
	this.lifeMax = 500
	this.aiStyle = 80
	this.width = 42
	this.height = 72
	this.value = 0
	this.knockBackResist = 0
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.npcSlots = 0
	this.noGravity = true
	SpawnWithHigherTime(30)
	this.chaseable = false
	this.netAlways = true
	this.rarity = 1
elseif (this.type == 396) then
	this.lifeMax = 45000
	this.defense = 50
	this.damage = 0
	this.width = 38
	this.height = 56
	this.aiStyle = 79
	this.HitSound = SoundID.NPCHit57
	this.DeathSound = SoundID.NPCDeath62
	this.value = 0
	this.npcSlots = 6
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.boss = true
	this.hide = true
	this.netAlways = true
elseif (this.type == 397) then
	this.lifeMax = 25000
	this.defense = 40
	this.damage = 0
	this.width = 46
	this.height = 66
	this.aiStyle = 78
	this.HitSound = SoundID.NPCHit57
	this.DeathSound = SoundID.NPCDeath62
	this.value = 0
	this.npcSlots = 6
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.boss = true
	this.hide = true
	this.netAlways = true
elseif (this.type == 398) then
	this.lifeMax = 50000
	this.defense = 70
	this.damage = 0
	this.width = 46
	this.height = 66
	this.aiStyle = 77
	this.HitSound = SoundID.NPCHit57
	this.DeathSound = null
	this.value = 1000000
	this.npcSlots = 6
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.dontTakeDamage = true
	this.boss = true
	this.behindTiles = true
	this.hide = true
	this.netAlways = true
elseif (this.type == 400) then
	this.defense = 0
	this.damage = 60
	this.lifeMax = 100
	this.aiStyle = 81
	this.width = 60
	this.height = 60
	this.value = 0
	this.knockBackResist = 0
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0
	this.noGravity = true
	this.dontTakeDamage = true
	this.noTileCollide = true
	this.netAlways = true
elseif (this.type == 401) then
	this.lifeMax = 400
	this.defense = 0
	this.damage = 0
	this.width = 30
	this.height = 30
	this.aiStyle = 82
	this.HitSound = SoundID.NPCHit57
	this.DeathSound = SoundID.NPCDeath62
	this.value = 0
	this.npcSlots = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.hide = true
elseif (this.type == 437) then
	this.lifeMax = 400
	this.defense = 0
	this.damage = 0
	this.width = 54
	this.height = 54
	this.aiStyle = 83
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.value = 0
	this.npcSlots = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.dontTakeDamage = true
	this.netAlways = true
	this.chaseable = false
elseif (this.type == 438) then
	this.lifeMax = 400
	this.defense = 0
	this.damage = 0
	this.width = 22
	this.height = 40
	this.aiStyle = 83
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 0
	this.npcSlots = 0
	this.knockBackResist = 0
	this.lavaImmune = true
	this.netAlways = true
	this.chaseable = false
elseif (this.type == 439) then
	this.width = 24
	this.height = 50
	this.aiStyle = 84
	this.damage = 50
	this.defense = 42
	this.lifeMax = 32000
	this.knockBackResist = 0
	this.noTileCollide = true
	this.noGravity = true
	this.npcSlots = 10
	this.HitSound = SoundID.NPCHit55
	this.DeathSound = SoundID.NPCDeath59
	this.value = 100000
	this.boss = true
	this.netAlways = true
	SpawnWithHigherTime(30)
elseif (this.type == 440) then
	this.width = 24
	this.height = 50
	this.aiStyle = 84
	this.damage = 0
	this.defense = 35
	this.lifeMax = 10000
	this.knockBackResist = 0
	this.noTileCollide = true
	this.noGravity = true
	this.npcSlots = 0
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.netAlways = true
	SpawnWithHigherTime(30)
	this.chaseable = false
elseif (this.type == 442) then
	this.width = 14
	this.height = 14
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2889
	this.npcSlots = 0.4
	this.rarity = 3
elseif (this.type == 443) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2890
	this.rarity = 3
elseif (this.type == 444) then
	this.width = 10
	this.height = 10
	this.aiStyle = 65
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	this.noGravity = true
	this.catchItem = 2891
	this.rarity = 3
elseif (this.type == 445) then
	this.width = 12
	this.height = 10
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 2892
	this.rarity = 3
elseif (this.type == 446) then
	this.width = 14
	this.height = 10
	this.aiStyle = 1
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.friendly = true
	this.catchItem = 2893
	this.npcSlots = 0.1
	this.rarity = 3
elseif (this.type == 447) then
	this.width = 14
	this.height = 12
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath4
	this.npcSlots = 0.25
	this.catchItem = 2894
	this.rarity = 3
elseif (this.type == 448) then
	this.width = 10
	this.height = 4
	this.aiStyle = 66
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.1
	this.catchItem = 2895
	this.friendly = true
	this.rarity = 3
elseif (this.type == 449) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 100
elseif (this.type == 450) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 12
	this.lifeMax = 55
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 130
elseif (this.type == 451) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 18
	this.defense = 8
	this.lifeMax = 65
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 120
elseif (this.type == 452) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 22
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 110
elseif (this.type == 453) then
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 30
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.npcSlots = 7
	this.rarity = 1
elseif (this.type == 454) then
	this.noTileCollide = true
	this.npcSlots = 5
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 100
	this.defense = 15
	this.lifeMax = 10000
	this.HitSound = SoundID.NPCHit56
	this.DeathSound = SoundID.NPCDeath60
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 0
	this.scale = 1
	this.alpha = 255
elseif (this.type == 459) then
	this.noTileCollide = true
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 50
	this.defense = 30
	this.lifeMax = 10000
	this.HitSound = SoundID.NPCHit56
	this.DeathSound = SoundID.NPCDeath60
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 0
	this.scale = 1
	this.alpha = 255
	this.dontCountMe = true
elseif (this.type == 455 or this.type == 456 or this.type == 457 or this.type == 458) then
	this.noTileCollide = true
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 50
	this.defense = 30
	this.lifeMax = 10000
	this.HitSound = SoundID.NPCHit56
	this.DeathSound = SoundID.NPCDeath60
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 0
	this.scale = 1
	this.alpha = 255
	this.dontCountMe = true
elseif (this.type == 464) then
	this.width = 18
	this.height = 20
	this.aiStyle = 3
	this.damage = 21
	this.defense = 5
	this.lifeMax = 75
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 465) then
	this.noGravity = true
	this.width = 18
	this.height = 20
	this.aiStyle = 16
	this.damage = 31
	this.defense = 7
	this.lifeMax = 110
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 470) then
	this.width = 16
	this.height = 34
	this.aiStyle = 3
	this.damage = 21
	this.defense = 5
	this.lifeMax = 75
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 500
elseif (this.type == 473 or this.type == 474 or this.type == 475 or this.type == 476) then
	this.width = 28
	this.height = 44
	this.aiStyle = 87
	this.damage = 90
	this.defense = 34
	this.lifeMax = 3500
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.value = 30000
	this.knockBackResist = 0.1
	this.rarity = 5
elseif (this.type == 480) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 30
	this.defense = 20
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.15
	this.value = 1000
	this.rarity = 1
elseif (this.type == 481) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 22
	this.defense = 10
	this.lifeMax = 70
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.4
	this.value = 300
elseif (this.type == 482) then
	this.width = 28
	this.height = 48
	this.aiStyle = 3
	this.damage = 30
	this.defense = 18
	this.lifeMax = 110
	this.HitSound = SoundID.NPCHit41
	this.DeathSound = SoundID.NPCDeath43
	this.knockBackResist = 0.35
	this.value = 500
elseif (this.type == 483) then
	this.npcSlots = 0.5
	this.width = 20
	this.height = 30
	this.aiStyle = 91
	this.damage = 24
	this.defense = 8
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit7
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath6
	this.value = 1000
elseif (this.type >= 484 and this.type <= 487) then
	this.width = 10
	this.height = 4
	this.aiStyle = 66
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.1
	this.catchItem = (3191 + this.type - 484)
	this.friendly = true
elseif (this.type == 488) then
	this.width = 18
	this.height = 40
	this.aiStyle = 92
	this.damage = 0
	this.defense = 0
	this.lifeMax = 1000
	this.HitSound = SoundID.NPCHit15
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0
	this.value = 0
	this.immortal = true
	this.netAlways = true
elseif (this.type == 489) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 8
	this.lifeMax = 75
	this.HitSound = SoundID.NPCHit18
	this.DeathSound = SoundID.NPCDeath21
	this.knockBackResist = 0.4
	this.value = 150
elseif (this.type == 490) then
	this.noGravity = true
	this.width = 28
	this.height = 30
	this.aiStyle = 22
	this.damage = 28
	this.defense = 14
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit19
	this.knockBackResist = 0.6
	this.DeathSound = SoundID.NPCDeath22
	this.value = 150
elseif (this.type == 491) then
	this.noGravity = true
	this.width = 350
	this.height = 120
	this.aiStyle = 93
	this.damage = 0
	this.defense = 100
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit19
	this.knockBackResist = 0
	this.DeathSound = SoundID.NPCDeath22
	this.value = 0
	this.dontTakeDamage = true
	this.netAlways = true
elseif (this.type == 492) then
	this.lifeMax = 2000
	this.defense = 20
	this.damage = 30
	this.width = 30
	this.height = 30
	this.aiStyle = 75
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.value = 0
	this.npcSlots = 1
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.hide = true
	this.netAlways = true
elseif (this.type >= 494 and this.type <= 495) then
	this.width = 28
	this.height = 22
	this.aiStyle = 3
	this.damage = 28
	this.defense = 6
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit33
	this.DeathSound = SoundID.NPCDeath36
	this.value = 120
elseif (this.type >= 496 and this.type <= 497) then
	this.width = 28
	this.height = 22
	this.aiStyle = 39
	this.damage = 16
	this.defense = 12
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit38
	this.DeathSound = SoundID.NPCDeath41
	this.knockBackResist = 0.75
	this.value = 120
elseif (this.type >= 498 and this.type <= 506) then
	this.width = 24
	this.height = 44
	this.aiStyle = 3
	this.damage = 18
	this.defense = 10
	this.lifeMax = 65
	this.HitSound = SoundID.NPCHit50
	this.DeathSound = SoundID.NPCDeath53
	this.knockBackResist = 0.45
	this.value = 120
elseif (this.type == 441) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 513) then
	this.npcSlots = 4
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.damage = 18
	this.defense = 0
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 130
elseif (this.type == 514) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 7
	this.defense = 12
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 130
	this.dontCountMe = true
	this.npcSlots = 0
elseif (this.type == 515) then
	this.width = 22
	this.height = 22
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 7
	this.defense = 14
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 130
	this.dontCountMe = true
	this.npcSlots = 0
elseif (this.type == 510) then
	this.npcSlots = 5
	this.width = 34
	this.height = 34
	this.aiStyle = 6
	this.damage = 58
	this.defense = 18
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 700
elseif (this.type == 511) then
	this.width = 34
	this.height = 34
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 54
	this.defense = 28
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 700
	this.dontCountMe = true
	this.npcSlots = 0
elseif (this.type == 512) then
	this.width = 34
	this.height = 34
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 50
	this.defense = 34
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = 700
	this.dontCountMe = true
	this.npcSlots = 0
elseif (this.type == 508) then
	this.width = 50
	this.height = 31
	this.aiStyle = 3
	this.damage = 38
	this.defense = 16
	this.lifeMax = 110
	this.HitSound = SoundID.NPCHit31
	this.DeathSound = SoundID.NPCDeath34
	this.knockBackResist = 0.4
	this.value = 175
elseif (this.type == 509) then
	this.width = 40
	this.height = 31
	this.aiStyle = 44
	this.damage = 34
	this.defense = 12
	this.lifeMax = 90
	this.knockBackResist = 0.3
	this.HitSound = SoundID.NPCHit32
	this.DeathSound = SoundID.NPCDeath35
	this.value = 195
elseif (this.type == 580) then
	this.width = 26
	this.height = 26
	this.aiStyle = 3
	this.damage = 25
	this.defense = 10
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit31
	this.DeathSound = SoundID.NPCDeath34
	this.knockBackResist = 0.5
	this.value = 80
	this.npcSlots = 0.8
elseif (this.type == 581) then
	this.width = 30
	this.height = 22
	this.aiStyle = 44
	this.damage = 29
	this.defense = 8
	this.lifeMax = 60
	this.knockBackResist = 0.5
	this.HitSound = SoundID.NPCHit32
	this.DeathSound = SoundID.NPCDeath35
	this.value = 90
	this.npcSlots = 0.8
elseif (this.type >= 524 and this.type <= 527) then
	this.width = 24
	this.height = 44
	this.aiStyle = 3
	this.damage = 50
	this.defense = 26
	this.lifeMax = 180
	this.HitSound = SoundID.NPCHit37
	this.DeathSound = SoundID.NPCDeath40
	this.knockBackResist = 0.6
	this.value = 500
	this.npcSlots = 0.5
	if (this.type - 524 == 1) then
		this.lifeMax = this.lifeMax + 70
		this.defense = this.defense + 4
		this.damage = this.damage + 10
		this.knockBackResist = this.knockBackResist - 0.1
		this.value = this.value + 150
	elseif(this.type - 524 == 2) then
		this.lifeMax = this.lifeMax + 40
		this.defense = this.defense + 6
		this.damage = this.damage + 14
		this.knockBackResist = this.knockBackResist - 0.1
		this.value = this.value + 150
	elseif(this.type - 524 == 3) then
		this.lifeMax = this.lifeMax + 120
		this.defense = this.defense + 6
		this.damage = this.damage + 4
		this.knockBackResist = this.knockBackResist - 0.2
		this.value = this.value + 250
	end
elseif (this.type >= 528 and this.type <= 529) then
	this.width = 24
	this.height = 44
	this.aiStyle = 3
	this.damage = 52
	this.defense = 28
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.35
	this.value = 600
elseif (this.type == 530) then
	this.width = 50
	this.height = 20
	this.aiStyle = 3
	this.damage = 66
	this.defense = 24
	this.lifeMax = 320
	this.HitSound = SoundID.NPCHit13
	this.DeathSound = SoundID.NPCDeath19
	this.knockBackResist = 0.5
	this.value = 600
	SpawnWithHigherTime(2)
elseif (this.type == 531) then
	this.noGravity = true
	this.width = 36
	this.height = 36
	this.aiStyle = 40
	this.damage = 66
	this.defense = 24
	this.lifeMax = 320
	this.HitSound = SoundID.NPCHit13
	this.DeathSound = SoundID.NPCDeath19
	this.knockBackResist = 0.5
	this.value = 600
	SpawnWithHigherTime(2)
elseif (this.type == 532) then
	this.width = 32
	this.height = 31
	this.aiStyle = 3
	this.damage = 65
	this.defense = 34
	this.lifeMax = 270
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.value = 800
	this.npcSlots = 0.75
elseif (this.type == 533) then
	this.width = 28
	this.height = 62
	this.aiStyle = 8
	this.damage = 40
	this.defense = 20
	this.lifeMax = 220
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0
	this.value = 1200
	this.npcSlots = 2
elseif (this.type == 493) then
	this.lifeMax = 20000
	this.defense = 20
	this.damage = 0
	this.width = 130
	this.height = 270
	this.aiStyle = 94
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.npcSlots = 0
elseif (this.type == 402) then
	this.noTileCollide = true
	this.npcSlots = 1
	this.width = 32
	this.height = 32
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 80
	this.defense = 10
	this.lifeMax = 1200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 0
	this.scale = 1
elseif (this.type == 405) then
	this.width = 44
	this.height = 44
	this.aiStyle = 85
	this.damage = 120
	this.defense = 50
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.noGravity = true
	this.npcSlots = 2
elseif (this.type == 406) then
	this.width = 22
	this.height = 22
	this.aiStyle = 95
	this.damage = 70
	this.defense = 0
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
	this.noGravity = true
elseif (this.type == 411) then
	this.width = 22
	this.height = 56
	this.aiStyle = 3
	this.damage = 80
	this.defense = 34
	this.lifeMax = 700
	this.HitSound = SoundID.NPCHit6
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
elseif (this.type == 409) then
	this.width = 34
	this.height = 42
	this.aiStyle = 3
	this.damage = 70
	this.defense = 40
	this.lifeMax = 800
	this.HitSound = SoundID.NPCHit6
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
	this.npcSlots = 3
elseif (this.type == 410) then
	this.width = 22
	this.height = 22
	this.aiStyle = 26
	this.damage = 80
	this.defense = 10
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath5
	this.knockBackResist = 0.3
	this.npcSlots = 0.5
elseif (this.type == 407) then
	this.width = 40
	this.height = 60
	this.aiStyle = 96
	this.damage = 70
	this.defense = 38
	this.lifeMax = 1500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.knockBackResist = 0.03
	this.npcSlots = 3
elseif (this.type == 507) then
	this.lifeMax = 20000
	this.defense = 20
	this.damage = 0
	this.width = 130
	this.height = 270
	this.aiStyle = 94
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.npcSlots = 0
elseif (this.type == 423) then
	this.width = 50
	this.height = 44
	this.aiStyle = 26
	this.damage = 90
	this.defense = 46
	this.lifeMax = 850
	this.HitSound = SoundID.NPCHit6
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.2
	this.npcSlots = 1
elseif (this.type == 421) then
	this.width = 44
	this.height = 44
	this.aiStyle = 85
	this.damage = 70
	this.defense = 34
	this.lifeMax = 330
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.noGravity = true
	this.npcSlots = 1
elseif (this.type == 424) then
	this.width = 22
	this.height = 56
	this.aiStyle = 3
	this.damage = 80
	this.defense = 30
	this.lifeMax = 700
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath5
	this.knockBackResist = 0.6
	this.npcSlots = 2
elseif (this.type == 420) then
	this.width = 40
	this.height = 40
	this.aiStyle = 97
	this.damage = 75
	this.defense = 20
	this.lifeMax = 1300
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.noTileCollide = true
	this.noGravity = true
	this.npcSlots = 3
elseif (this.type == 422) then
	this.lifeMax = 20000
	this.defense = 20
	this.damage = 0
	this.width = 130
	this.height = 270
	this.aiStyle = 94
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.npcSlots = 0
elseif (this.type == 425) then
	this.width = 30
	this.height = 56
	this.aiStyle = 3
	this.damage = 100
	this.defense = 40
	this.lifeMax = 800
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.4
elseif (this.type == 429) then
	this.width = 22
	this.height = 56
	this.aiStyle = 3
	this.damage = 90
	this.defense = 34
	this.lifeMax = 700
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath5
	this.knockBackResist = 0.6
	this.npcSlots = 2
elseif (this.type == 428) then
	this.width = 24
	this.height = 26
	this.aiStyle = 3
	this.damage = 50
	this.defense = 6
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
elseif (this.type == 427) then
	this.width = 40
	this.height = 28
	this.aiStyle = 3
	this.damage = 75
	this.defense = 20
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.npcSlots = 0.5
elseif (this.type == 426) then
	this.width = 50
	this.height = 62
	this.aiStyle = 3
	this.damage = 100
	this.defense = 44
	this.lifeMax = 1000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.3
elseif (this.type == 517) then
	this.lifeMax = 20000
	this.defense = 20
	this.damage = 0
	this.width = 130
	this.height = 270
	this.aiStyle = 94
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.npcSlots = 0
elseif (this.type == 412) then
	this.width = 20
	this.height = 20
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 120
	this.defense = 1000
	this.lifeMax = 10000
	this.HitSound = SoundID.NPCHit11
	this.DeathSound = SoundID.NPCDeath22
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.dontTakeDamage = true
	this.npcSlots = 2
elseif (this.type == 413) then
	this.width = 20
	this.height = 20
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 80
	this.defense = 1000
	this.lifeMax = 10000
	this.HitSound = SoundID.NPCHit11
	this.DeathSound = SoundID.NPCDeath22
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.dontCountMe = true
	this.dontTakeDamage = true
	this.npcSlots = 0
elseif (this.type == 414) then
	this.width = 20
	this.height = 20
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 50
	this.defense = 0
	this.lifeMax = 10000
	this.HitSound = SoundID.NPCHit8
	this.DeathSound = SoundID.NPCDeath22
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.dontCountMe = true
	this.takenDamageMultiplier = 10
	this.npcSlots = 0
elseif (this.type == 415) then
	this.lifeMax = 800
	this.defense = 32
	this.damage = 55
	this.width = 60
	this.height = 40
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.2
elseif (this.type == 416) then
	this.damage = 80
	this.defense = 28
	this.lifeMax = 800
	this.width = 18
	this.height = 40
	this.aiStyle = 75
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.2
elseif (this.type == 518) then
	this.lifeMax = 1000
	this.defense = 28
	this.damage = 80
	this.width = 22
	this.height = 56
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
elseif (this.type == 417) then
	this.npcSlots = 2
	this.width = 46
	this.height = 52
	this.aiStyle = 39
	this.damage = 80
	this.defense = 34
	this.lifeMax = 700
	this.HitSound = SoundID.NPCHit7
	this.knockBackResist = 0
	this.DeathSound = SoundID.NPCDeath5
elseif (this.type == 418) then
	this.width = 38
	this.height = 38
	this.aiStyle = 74
	this.damage = 70
	this.defense = 26
	this.lifeMax = 600
	this.HitSound = SoundID.NPCHit3
	this.DeathSound = SoundID.NPCDeath3
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.2
elseif (this.type == 419) then
	this.lifeMax = 800
	this.defense = 30
	this.damage = 90
	this.width = 22
	this.height = 56
	this.aiStyle = 3
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.4
elseif (this.type == 516) then
	this.width = 26
	this.height = 26
	this.aiStyle = 9
	this.damage = 100
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = null
	this.DeathSound = null
	this.noGravity = true
	this.noTileCollide = false
	this.alpha = 0
	this.knockBackResist = 0
elseif (this.type == 519) then
	this.width = 26
	this.height = 26
	this.aiStyle = 99
	this.damage = 120
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = null
	this.DeathSound = null
	this.noGravity = true
	this.noTileCollide = false
	this.alpha = 0
	this.knockBackResist = 0
elseif (this.type == 162) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 65
	this.defense = 18
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.3
	this.value = 600
elseif (this.type == 166) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 26
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.2
	this.value = 1000
elseif (this.type == 253) then
	this.noGravity = true
	this.noTileCollide = true
	this.width = 24
	this.height = 44
	this.aiStyle = 22
	this.damage = 80
	this.defense = 22
	this.lifeMax = 700
	this.HitSound = SoundID.NPCHit49
	this.DeathSound = SoundID.NPCDeath51
	this.alpha = 100
	this.value = 1500
	this.knockBackResist = 0.6
elseif (this.type == 158) then
	this.npcSlots = 2
	this.width = 22
	this.height = 22
	this.aiStyle = 14
	this.damage = 60
	this.defense = 32
	this.lifeMax = 750
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.75
	this.DeathSound = SoundID.NPCDeath6
	this.value = 5000
elseif (this.type == 159) then
	this.npcSlots = 2
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 80
	this.defense = 24
	this.lifeMax = 750
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.4
	this.value = 5000
elseif (this.type == 460) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 30
	this.lifeMax = 700
	this.HitSound = SoundID.NPCHit7
	this.DeathSound = SoundID.NPCDeath17
	this.knockBackResist = 0.25
	this.value = 1000
elseif (this.type == 461) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 60
	this.defense = 22
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.value = 1000
elseif (this.type == 462) then
	this.width = 20
	this.height = 24
	this.aiStyle = 3
	this.damage = 70
	this.defense = 14
	this.lifeMax = 270
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.7
	this.value = 600
	this.npcSlots = 0.5
elseif (this.type == 463) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 100
	this.defense = 34
	this.lifeMax = 4000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.1
	this.value = 3000
elseif (this.type == 466) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 70
	this.defense = 40
	this.lifeMax = 550
	this.HitSound = SoundID.NPCHit48
	this.DeathSound = SoundID.NPCDeath50
	this.knockBackResist = 0.5
	this.value = 1500
elseif (this.type == 467) then
	this.width = 22
	this.height = 22
	this.aiStyle = 85
	this.damage = 100
	this.defense = 80
	this.lifeMax = 350
	this.HitSound = SoundID.NPCHit34
	this.DeathSound = SoundID.NPCDeath37
	this.value = 900
	this.knockBackResist = 0.7
	this.noGravity = true
elseif (this.type == 469) then
	this.width = 38
	this.height = 26
	this.aiStyle = 3
	this.damage = 68
	this.defense = 28
	this.lifeMax = 600
	this.HitSound = SoundID.NPCHit47
	this.DeathSound = SoundID.NPCDeath49
	this.knockBackResist = 0.35
	this.value = 1300
elseif (this.type == 468) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 65
	this.defense = 24
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit35
	this.DeathSound = SoundID.NPCDeath38
	this.knockBackResist = 0.6
	this.value = 1300
elseif (this.type == 477) then
	this.noGravity = true
	this.netAlways = true
	this.width = 80
	this.height = 50
	this.aiStyle = 88
	this.damage = 80
	this.defense = 30
	this.lifeMax = 6000
	this.HitSound = SoundID.NPCHit44
	this.DeathSound = SoundID.NPCDeath46
	this.value = 50000
	this.knockBackResist = 0.2
	this.rarity = 1
elseif (this.type == 478) then
	this.width = 34
	this.height = 34
	this.aiStyle = 89
	this.damage = 0
	this.defense = 30
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 0
	this.knockBackResist = 0.7
	this.npcSlots = 0
elseif (this.type == 479) then
	this.width = 46
	this.height = 30
	this.aiStyle = 90
	this.damage = 50
	this.defense = 14
	this.lifeMax = 700
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.value = 0
	this.npcSlots = 0.1
elseif (this.type == 26) then
	this.scale = 0.9
	this.width = 18
	this.height = 38
	this.aiStyle = 3
	this.damage = 12
	this.defense = 4
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.8
	this.value = 100
elseif (this.type == 27) then
	this.scale = 0.95
	this.width = 18
	this.height = 38
	this.aiStyle = 3
	this.damage = 20
	this.defense = 6
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.7
	this.value = 200
elseif (this.type == 28) then
	this.scale = 1.1
	this.width = 18
	this.height = 38
	this.aiStyle = 3
	this.damage = 25
	this.defense = 8
	this.lifeMax = 110
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.value = 150
elseif (this.type == 29) then
	this.width = 18
	this.height = 38
	this.aiStyle = 8
	this.damage = 20
	this.defense = 2
	this.lifeMax = 40
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.6
	this.value = 200
elseif (this.type == 30) then
	this.width = 16
	this.height = 16
	this.aiStyle = 9
	this.damage = 20
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = SoundID.NPCHit3
	this.DeathSound = SoundID.NPCDeath3
	this.noGravity = true
	this.noTileCollide = true
	this.alpha = 100
	this.knockBackResist = 0
elseif (this.type == 111) then
	this.scale = 0.95
	this.width = 18
	this.height = 38
	this.aiStyle = 3
	this.damage = 20
	this.defense = 6
	this.lifeMax = 80
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.7
	this.value = 200
elseif (this.type == 471) then
	this.width = 18
	this.height = 38
	this.aiStyle = 3
	this.damage = 80
	this.defense = 26
	this.lifeMax = 2000
	this.HitSound = SoundID.NPCHit40
	this.DeathSound = SoundID.NPCDeath42
	this.knockBackResist = 0.15
	this.value = 5000
	this.rarity = 1
elseif (this.type == 472) then
	this.width = 40
	this.height = 24
	this.aiStyle = 86
	this.damage = 50
	this.defense = 18
	this.lifeMax = 180
	this.HitSound = SoundID.NPCHit52
	this.DeathSound = SoundID.NPCDeath55
	this.knockBackResist = 0
	this.value = 0
	this.npcSlots = 0.1
elseif (this.type == 520) then
	this.width = 34
	this.height = 110
	this.aiStyle = 3
	this.damage = 60
	this.defense = 40
	this.lifeMax = 2000
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath14
	this.knockBackResist = 0
elseif (this.type == 521) then
	this.width = 60
	this.height = 60
	this.aiStyle = 86
	this.damage = 90
	this.defense = 30
	this.lifeMax = 2000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0
elseif (this.type == 522) then
	this.width = 26
	this.height = 26
	this.aiStyle = 100
	this.damage = 120
	this.defense = 0
	this.lifeMax = 400
	this.HitSound = null
	this.DeathSound = null
	this.noGravity = true
	this.noTileCollide = true
	this.alpha = 0
	this.knockBackResist = 0
elseif (this.type == 523) then
	this.width = 42
	this.height = 42
	this.aiStyle = 101
	this.damage = 30
	this.defense = 0
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.noGravity = true
	this.noTileCollide = true
	this.alpha = 0
	this.knockBackResist = 0
	this.chaseable = false
	this.alpha = 255
	this.canGhostHeal = false
elseif (this.type == 534) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 20
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.3
	this.value = 0
	this.lavaImmune = true
	this.netAlways = true
	this.rarity = 2
elseif (this.type == 535) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 14
	this.defense = 5
	this.lifeMax = 50
	this.scale = 1.1
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 0
	this.value = 40
elseif (this.type == 536) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 8
	this.lifeMax = 200
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 1000
	this.rarity = 2
elseif (this.type == 537) then
	this.npcSlots = 2
	this.width = 30
	this.height = 24
	this.aiStyle = 1
	this.damage = 15
	this.defense = 5
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.alpha = 50
	-- this.color = new Color(255, 250, 0, 0) * 0.2
	this.value = 75
	this.knockBackResist = 0.7
elseif (this.type == 538) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 3563
elseif (this.type == 539) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 3564
	this.rarity = 3
elseif (this.type == 541) then
	this.width = 30
	this.height = 76
	this.aiStyle = 102
	this.damage = 40
	this.defense = 30
	this.lifeMax = 5000
	this.HitSound = SoundID.NPCHit23
	this.DeathSound = SoundID.NPCDeath39
	this.knockBackResist = 0.05
	this.value = Item.buyPrice(0, 1, 50, 0)
	this.rarity = 2
elseif (this.type == 542) then
	this.noGravity = true
	this.width = 100
	this.height = 24
	this.aiStyle = 103
	this.damage = 50
	this.defense = 20
	this.lifeMax = 360
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 400
	this.knockBackResist = 0.9
	this.behindTiles = true
elseif (this.type == 543) then
	this.noGravity = true
	this.width = 100
	this.height = 24
	this.aiStyle = 103
	this.damage = 60
	this.defense = 24
	this.lifeMax = 380
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 400
	this.knockBackResist = 0.8
	this.behindTiles = true
elseif (this.type == 544) then
	this.noGravity = true
	this.width = 100
	this.height = 24
	this.aiStyle = 103
	this.damage = 64
	this.defense = 22
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 400
	this.knockBackResist = 0.8
	this.behindTiles = true
elseif (this.type == 545) then
	this.noGravity = true
	this.width = 100
	this.height = 24
	this.aiStyle = 103
	this.damage = 54
	this.defense = 26
	this.lifeMax = 450
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 400
	this.knockBackResist = 0.7
	this.behindTiles = true
elseif (this.type == 546) then
	this.width = 30
	this.height = 30
	this.aiStyle = 26
	this.damage = 30
	this.defense = 6
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit11
	this.DeathSound = SoundID.NPCDeath15
	this.knockBackResist = 0.8
	this.value = 100
elseif (this.type == 547) then
	this.width = 16
	this.height = 16
	this.aiStyle = 104
	this.defense = 10
	this.lifeMax = 10
	this.HitSound = SoundID.NPCHit11
	this.DeathSound = SoundID.NPCDeath15
	this.knockBackResist = 1
	this.noGravity = true
	this.noTileCollide = true
elseif (this.type == 548) then
	this.width = 40
	this.height = 40
	this.aiStyle = 105
	this.defense = 14
	this.lifeMax = 1000
	this.HitSound = SoundID.DD2_CrystalCartImpact
	this.DeathSound = SoundID.NPCDeath15
	this.knockBackResist = 0
	this.friendly = true
	this.npcSlots = 0
	this.hide = true
	if (Main.hardMode and NPC.downedMechBossAny) then
		this.defense = 18
		this.lifeMax = 3000
	end
	if (NPC.downedGolemBoss and Main.hardMode) then
		this.defense = 20
		this.lifeMax = 5000
	end
	if (Main.masterMode) then
		this.lifeMax = this.lifeMax * 3
	elseif (Main.expertMode) then
		this.lifeMax = this.lifeMax * 2
	end
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 549) then
	this.lifeMax = 5
	this.defense = 20
	this.damage = 0
	this.width = 78
	this.height = 130
	this.aiStyle = 106
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.value = 0
	this.knockBackResist = 0
	this.noGravity = true
	this.noTileCollide = true
	this.npcSlots = 0
	this.behindTiles = true
	this.dontTakeDamage = true
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 552) then
	this.lifeMax = 30
	this.defense = 14
	this.damage = 18
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_GoblinHurt
	this.DeathSound = SoundID.DD2_GoblinDeath
	this.knockBackResist = 0.2
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 553) then
	this.lifeMax = 170
	this.defense = 20
	this.damage = 46
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_GoblinHurt
	this.DeathSound = SoundID.DD2_GoblinDeath
	this.knockBackResist = 0.2
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 554) then
	this.lifeMax = 560
	this.defense = 28
	this.damage = 70
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_GoblinHurt
	this.DeathSound = SoundID.DD2_GoblinDeath
	this.knockBackResist = 0.15
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 561) then
	this.lifeMax = 60
	this.defense = 18
	this.damage = 30
	this.width = 26
	this.height = 52
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_JavelinThrowersHurt
	this.DeathSound = SoundID.DD2_JavelinThrowersDeath
	this.knockBackResist = 0.1
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 562) then
	this.lifeMax = 300
	this.defense = 28
	this.damage = 60
	this.width = 26
	this.height = 52
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_JavelinThrowersHurt
	this.DeathSound = SoundID.DD2_JavelinThrowersDeath
	this.knockBackResist = 0.1
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 563) then
	this.lifeMax = 1000
	this.defense = 38
	this.damage = 80
	this.width = 26
	this.height = 52
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_JavelinThrowersHurt
	this.DeathSound = SoundID.DD2_JavelinThrowersDeath
	this.knockBackResist = 0.05
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 555) then
	this.lifeMax = 50
	this.defense = 16
	this.damage = 26
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_GoblinBomberHurt
	this.DeathSound = SoundID.DD2_GoblinBomberDeath
	this.knockBackResist = 0.2
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 556) then
	this.lifeMax = 200
	this.defense = 26
	this.damage = 55
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_GoblinBomberHurt
	this.DeathSound = SoundID.DD2_GoblinBomberDeath
	this.knockBackResist = 0.2
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 557) then
	this.lifeMax = 700
	this.defense = 34
	this.damage = 75
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_GoblinBomberHurt
	this.DeathSound = SoundID.DD2_GoblinBomberDeath
	this.knockBackResist = 0.15
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 558) then
	this.width = 38
	this.height = 38
	this.aiStyle = 108
	this.damage = 30
	this.defense = 4
	this.lifeMax = 60
	this.HitSound = SoundID.DD2_WyvernHurt
	this.DeathSound = SoundID.DD2_WyvernDeath
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.2
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 559) then
	this.width = 38
	this.height = 38
	this.aiStyle = 108
	this.damage = 75
	this.defense = 16
	this.lifeMax = 180
	this.HitSound = SoundID.DD2_WyvernHurt
	this.DeathSound = SoundID.DD2_WyvernDeath
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.2
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 560) then
	this.width = 38
	this.height = 38
	this.aiStyle = 108
	this.damage = 100
	this.defense = 30
	this.lifeMax = 600
	this.HitSound = SoundID.DD2_WyvernHurt
	this.DeathSound = SoundID.DD2_WyvernDeath
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.05
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 550) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 576) then
	this.lifeMax = 5000
	this.defense = 34
	this.damage = 70
	this.width = 96
	this.height = 124
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_OgreHurt
	this.DeathSound = SoundID.DD2_OgreDeath
	this.knockBackResist = 0
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 577) then
	this.lifeMax = 13000
	this.defense = 40
	this.damage = 90
	this.width = 96
	this.height = 124
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_OgreHurt
	this.DeathSound = SoundID.DD2_OgreDeath
	this.knockBackResist = 0
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 568) then
	this.lifeMax = 500
	this.defense = 30
	this.damage = 50
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_WitherBeastHurt
	this.DeathSound = SoundID.DD2_WitherBeastDeath
	this.knockBackResist = 0.15
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 569) then
	this.lifeMax = 1400
	this.defense = 40
	this.damage = 80
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_WitherBeastHurt
	this.DeathSound = SoundID.DD2_WitherBeastDeath
	this.knockBackResist = 0.05
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 566) then
	this.lifeMax = 25
	this.defense = 12
	this.damage = 18
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_SkeletonHurt
	this.DeathSound = SoundID.DD2_SkeletonDeath
	this.knockBackResist = 0.3
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 567) then
	this.lifeMax = 480
	this.defense = 22
	this.damage = 70
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_SkeletonHurt
	this.DeathSound = SoundID.DD2_SkeletonDeath
	this.knockBackResist = 0.2
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 572) then
	this.lifeMax = 260
	this.defense = 26
	this.damage = 60
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_KoboldHurt
	this.DeathSound = SoundID.DD2_KoboldDeath
	this.knockBackResist = 0.2
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 573) then
	this.lifeMax = 800
	this.defense = 32
	this.damage = 80
	this.width = 18
	this.height = 40
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_KoboldHurt
	this.DeathSound = SoundID.DD2_KoboldDeath
	this.knockBackResist = 0.1
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 570) then
	this.lifeMax = 900
	this.defense = 30
	this.damage = 60
	this.width = 42
	this.height = 58
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_DrakinHurt
	this.DeathSound = SoundID.DD2_DrakinDeath
	this.knockBackResist = 0
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 571) then
	this.lifeMax = 3000
	this.defense = 40
	this.damage = 90
	this.width = 42
	this.height = 58
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_DrakinHurt
	this.DeathSound = SoundID.DD2_DrakinDeath
	this.knockBackResist = 0
	this.value = 0
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 564) then
	this.lifeMax = 800
	this.defense = 18
	this.damage = 40
	this.width = 34
	this.height = 62
	this.aiStyle = 109
	this.HitSound = SoundID.DD2_DarkMageHurt
	this.DeathSound = SoundID.DD2_DarkMageDeath
	this.knockBackResist = 0
	this.value = 0
	this.npcSlots = 0
	this.noGravity = true
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 565) then
	this.lifeMax = 4000
	this.defense = 38
	this.damage = 90
	this.width = 34
	this.height = 62
	this.aiStyle = 109
	this.HitSound = SoundID.DD2_DarkMageHurt
	this.DeathSound = SoundID.DD2_DarkMageDeath
	this.knockBackResist = 0
	this.value = 0
	this.npcSlots = 0
	this.noGravity = true
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 574) then
	this.width = 38
	this.height = 38
	this.aiStyle = 108
	this.damage = 50
	this.defense = 16
	this.lifeMax = 170
	this.HitSound = SoundID.DD2_KoboldFlyerHurt
	this.DeathSound = SoundID.DD2_KoboldFlyerDeath
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.4
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 575) then
	this.width = 38
	this.height = 38
	this.aiStyle = 108
	this.damage = 80
	this.defense = 32
	this.lifeMax = 580
	this.HitSound = SoundID.DD2_KoboldFlyerHurt
	this.DeathSound = SoundID.DD2_KoboldFlyerDeath
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.25
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 551) then
	this.damage = 80
	this.defense = 38
	this.lifeMax = 50000
	this.width = 190
	this.height = 90
	this.aiStyle = 110
	this.HitSound = SoundID.DD2_BetsyHurt
	this.DeathSound = SoundID.DD2_BetsyDeath
	this.knockBackResist = 0
	this.value = 0
	this.noGravity = true
	this.noTileCollide = true
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 578) then
	this.width = 30
	this.height = 24
	this.aiStyle = 111
	this.damage = 80
	this.defense = 36
	this.lifeMax = 500
	this.HitSound = SoundID.DD2_LightningBugHurt
	this.DeathSound = SoundID.DD2_LightningBugDeath
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0.8
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
elseif (this.type == 579) then
	this.friendly = true
	this.width = 34
	this.height = 8
	this.aiStyle = 0
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.scale = 1
	this.rarity = 1
elseif (this.type == 582) then
	this.width = 18
	this.height = 18
	this.aiStyle = 3
	this.damage = 10
	this.defense = 2
	this.lifeMax = 30
	this.HitSound = SoundID.NPCHit31
	this.DeathSound = SoundID.NPCDeath34
	this.knockBackResist = 0.75
	this.value = 40
	this.npcSlots = 0.4
elseif (this.type == 583 or this.type == 584 or this.type == 585) then
	this.width = 18
	this.height = 20
	this.aiStyle = 112
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	if (this.type == 583) then
		this.catchItem = 4068
	elseif (this.type == 584) then
		this.catchItem = 4069
	elseif (this.type == 585) then
		this.catchItem = 4070
	end
	this.noGravity = true
	this.rarity = 2
elseif (this.type == 586) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 40
	this.defense = 20
	this.lifeMax = 400
	this.HitSound = SoundID.NPCHit18
	this.DeathSound = SoundID.NPCDeath21
	this.knockBackResist = 0
	this.value = 1000
	this.alpha = 255
	this.rarity = 1
elseif (this.type == 587) then
	this.width = 32
	this.height = 18
	this.aiStyle = 44
	this.damage = 35
	this.defense = 18
	this.lifeMax = 300
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0
	this.DeathSound = SoundID.NPCDeath1
	this.value = 1000
	this.alpha = 255
	this.rarity = 1
elseif (this.type == 588) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 589) then
	this.friendly = true
	this.width = 18
	this.height = 34
	this.aiStyle = 0
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.rarity = 1
elseif (this.type == 590 or this.type == 591) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 6
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 60
elseif (this.type == 592) then
	this.noGravity = true
	this.width = 20
	this.height = 18
	this.aiStyle = 16
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.catchItem = 4274
	this.rarity = 3
elseif (this.type == 593) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 4274
	this.rarity = 3
elseif (this.type == 594) then
	this.width = 20
	this.height = 20
	this.aiStyle = 113
	this.damage = 0
	this.defense = 0
	this.knockBackResist = 0.3
	this.lifeMax = 1
	this.DeathSound = SoundID.NPCDeath63
	this.value = 0
	this.noGravity = true
elseif (this.type >= 595 and this.type <= 601) then
	this.timeLeft = this.timeLeft * 3
	this.width = 10
	this.height = 10
	this.aiStyle = 114
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	this.noGravity = true
	if (this.type == 601) then
		this.rarity = 3
	end
	this.catchItem = (this.type - 595 + 4334)
elseif (this.type == 602) then
	this.width = 22
	this.height = 26
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 4359
elseif (this.type == 603) then
	this.width = 28
	this.height = 22
	this.aiStyle = 68
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 4359
elseif (this.type == 604 or this.type == 605) then
	this.width = 10
	this.height = 10
	this.aiStyle = 115
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	this.noGravity = true
	if (this.type == 605) then
		this.rarity = 3
	end
	this.catchItem = (this.type - 604 + 4361)
elseif (this.type == 606) then
	this.width = 10
	this.height = 4
	this.aiStyle = 66
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.1
	this.catchItem = 4363
	this.friendly = true
elseif (this.type == 607) then
	this.noGravity = true
	this.width = 20
	this.height = 18
	this.aiStyle = 16
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.catchItem = 4373
elseif (this.type == 608) then
	this.width = 22
	this.height = 26
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 4374
elseif (this.type == 609) then
	this.width = 28
	this.height = 22
	this.aiStyle = 68
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 4374
elseif (this.type == 610) then
	this.width = 14
	this.height = 12
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath4
	this.npcSlots = 0.25
	this.catchItem = 4375
elseif (this.type == 611) then
	this.width = 18
	this.height = 34
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 4395
	this.npcSlots = 0.4
elseif (this.type == 612 or this.type == 613) then
	this.width = 10
	this.height = 10
	this.aiStyle = 116
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	if (this.type == 613) then
		this.rarity = 3
	end
	this.catchItem = (this.type - 612 + 4418)
	this.waterMovementSpeed = 1
	this.lavaMovementSpeed = 1
	this.honeyMovementSpeed = 1
elseif (this.type == 614) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = null
	this.catchItem = 1338
elseif (this.type == 615) then
	this.noGravity = true
	this.width = 20
	this.height = 18
	this.aiStyle = 16
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 616 or this.type == 617) then
	this.width = 22
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
	this.catchItem = (this.type - 616 + 4464)
elseif (this.type == 618) then
	this.noGravity = true
	this.width = 100
	this.height = 100
	this.aiStyle = 117
	this.damage = 55
	this.defense = 24
	this.lifeMax = 7000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.value = Item.buyPrice(0, 2, 0, 0)
	this.noTileCollide = true
	this.rarity = 1
elseif (this.type == 619) then
	this.npcSlots = 1
	this.width = 44
	this.height = 44
	this.aiStyle = 5
	this.damage = 60
	this.defense = 16
	this.lifeMax = 750
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.knockBackResist = 0
	this.value = 500
	this.alpha = 255
elseif (this.type == 620) then
	this.lifeMax = 5000
	this.defense = 30
	this.damage = 70
	this.width = 34
	this.height = 58
	this.aiStyle = 107
	this.HitSound = SoundID.DD2_DrakinHurt
	this.DeathSound = SoundID.DD2_DrakinDeath
	this.knockBackResist = 0
	this.value = Item.buyPrice(0, 0, 75, 0)
	this.npcSlots = 0
	this.lavaImmune = true
	LazySetLiquidMovementDD2()
	this.netAlways = true
	this.alpha = 255
	this.rarity = 1
elseif (this.type == 621) then
	this.npcSlots = 5
	this.width = 28
	this.height = 28
	this.aiStyle = 6
	this.damage = 90
	this.defense = 0
	this.lifeMax = 6000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.value = Item.buyPrice(0, 0, 75, 0)
	this.alpha = 255
	this.rarity = 1
elseif (this.type == 622) then
	this.width = 28
	this.height = 28
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 60
	this.defense = 30
	this.lifeMax = 6000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.dontCountMe = true
	this.npcSlots = 0
	this.alpha = 255
elseif (this.type == 623) then
	this.width = 28
	this.height = 28
	this.aiStyle = 6
	this.netAlways = true
	this.damage = 50
	this.defense = 40
	this.lifeMax = 6000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.behindTiles = true
	this.dontCountMe = true
	this.npcSlots = 0
	this.alpha = 255
elseif (this.type == 624) then
	this.width = 14
	this.height = 30
	this.aiStyle = 3
	this.damage = 10
	this.defense = 0
	this.lifeMax = 25
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 1
	this.rarity = 1
elseif (this.type == 625) then
	this.width = 22
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 626 or this.type == 627) then
	this.width = 16
	this.height = 20
	this.aiStyle = 118
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 1
	if (this.type == 627) then
		this.rarity = 3
	end
	this.catchItem = 4480
	if (this.type == 627) then
		this.catchItem = 4482
	end
elseif (this.type == 628) then
	this.width = 22
	this.height = 40
	this.aiStyle = 119
	this.damage = 15
	this.defense = 0
	this.lifeMax = 50
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0
	this.value = 50
elseif (this.type == 629) then
	this.width = 24
	this.height = 24
	this.aiStyle = 25
	this.damage = 80
	this.defense = 30
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit4
	this.DeathSound = SoundID.NPCDeath6
	this.value = 100000
	this.knockBackResist = 0.3
	this.rarity = 4
	this.coldDamage = true
	if (Main.remixWorld and not Main.hardMode) then
		this.damage = 30
		this.defense = 12
		this.lifeMax = 300
		this.value = Item.buyPrice(0, 2, 0, 0)
	end
elseif (this.type == 630) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 60
	this.defense = 18
	this.lifeMax = 180
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.value = 700
elseif (this.type == 631) then
	this.width = 36
	this.height = 48
	this.scale = 1.1
	this.aiStyle = 3
	this.damage = 85
	this.defense = 35
	this.lifeMax = 1000
	this.HitSound = SoundID.NPCHit41
	this.DeathSound = SoundID.NPCDeath43
	this.knockBackResist = 0.1
	this.value = 25000
elseif (this.type == 632) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 14
	this.defense = 6
	this.lifeMax = 45
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 60
elseif (this.type == 633) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.5
elseif (this.type == 634) then
	this.npcSlots = 0.5
	this.width = 22
	this.height = 18
	this.aiStyle = 14
	this.damage = 13
	this.defense = 2
	this.lifeMax = 16
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath4
	this.value = 90
elseif (this.type == 635) then
	this.width = 18
	this.height = 40
	this.aiStyle = 3
	this.damage = 20
	this.defense = 8
	this.lifeMax = 60
	this.HitSound = SoundID.NPCHit2
	this.DeathSound = SoundID.NPCDeath2
	this.knockBackResist = 0.5
	this.value = 100
elseif (this.type == 636) then
	this.noGravity = true
	this.width = 100
	this.height = 100
	this.aiStyle = 120
	this.damage = 80
	this.defense = 50
	this.lifeMax = 70000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath65
	this.knockBackResist = 0
	this.value = 250000
	this.noTileCollide = true
	this.boss = true
	this.Opacity = 0
	this.dontTakeDamage = true
	this.npcSlots = 16
elseif (this.type == 637 or this.type == 638) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 28
	if (this.type == 637) then
		this.height = 20
	end
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.housingCategory = 1
elseif (this.type >= 639 and this.type <= 645) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = (4831 + (this.type - 639))
elseif (this.type >= 646 and this.type <= 652) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = (4838 + (this.type - 646))
elseif (this.type == 653) then
	this.width = 10
	this.height = 10
	this.aiStyle = 65
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	this.noGravity = true
	this.lavaImmune = true
	this.catchItem = 4845
elseif (this.type == 654) then
	this.width = 10
	this.height = 10
	this.aiStyle = 64
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.2
	this.noGravity = true
	this.lavaImmune = true
	this.catchItem = 4847
elseif (this.type == 655) then
	this.width = 14
	this.height = 14
	this.aiStyle = 67
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.5
	this.noGravity = true
	this.lavaImmune = true
	this.catchItem = 4849
elseif (this.type == 656) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.housingCategory = 1
elseif (this.type == 657) then
	this.width = 114
	this.height = 100
	this.aiStyle = 121
	this.damage = 60
	this.defense = 26
	this.lifeMax = 18000
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath64
	this.lavaImmune = true
	this.knockBackResist = 0
	this.value = 60000
	this.boss = true
	this.npcSlots = 5
elseif (this.type == 658 or this.type == 659) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 40
	this.defense = 35
	this.lifeMax = 150
	this.scale = 1
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
elseif (this.type == 660) then
	this.width = 40
	this.height = 30
	this.aiStyle = 14
	this.damage = 50
	this.defense = 30
	this.lifeMax = 120
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.knockBackResist = 0.8
	this.scale = 1
elseif (this.type == 661) then
	this.width = 10
	this.height = 10
	this.aiStyle = 65
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	this.noGravity = true
	this.lavaImmune = true
	this.catchItem = 4961
	this.rarity = 4
elseif (this.type == 662) then
	this.width = 18
	this.height = 40
	this.aiStyle = 122
	this.damage = 75
	this.defense = 22
	this.lifeMax = 500
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.2
	this.value = 0
	this.noTileCollide = true
	this.lavaImmune = true
	this.trapImmune = true
	this.noGravity = true
elseif (this.type == 663) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 40
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
elseif (this.type == 664) then
	this.lifeMax = 20
	this.boss = true
elseif (this.type == 665) then
	this.width = 16
	this.height = 16
	this.aiStyle = 9
	this.damage = 20
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = SoundID.NPCHit3
	this.DeathSound = SoundID.NPCDeath3
	this.noGravity = true
	this.noTileCollide = true
	this.alpha = 100
	this.knockBackResist = 0
elseif (this.type == 666) then
	this.width = 16
	this.height = 16
	this.aiStyle = 9
	this.damage = 65
	this.defense = 0
	this.lifeMax = 1
	this.HitSound = null
	this.DeathSound = SoundID.NPCDeath9
	this.noGravity = true
	this.noTileCollide = true
	this.knockBackResist = 0
	this.scale = 0.9
	this.alpha = 80
elseif (this.type == 667) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 5
	this.defense = 5
	this.lifeMax = 300
	this.knockBackResist = this.knockBackResist * 1.4
	this.rarity = 2
	this.scale = 1
	this.value = Item.buyPrice(0, 15, 0, 0)
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
elseif (this.type == 668) then
	this.width = 60
	this.height = 154
	this.aiStyle = 123
	this.damage = 20
	this.defense = 10
	this.lifeMax = 7000
	this.HitSound = SoundID.DeerclopsHit
	this.DeathSound = SoundID.DeerclopsDeath
	this.knockBackResist = 0
	this.boss = true
	this.noGravity = true
	this.noTileCollide = true
	this.value = Item.buyPrice(0, 5, 0, 0)
	this.npcSlots = 10
	this.coldDamage = true
elseif (this.type == 669) then
	this.width = 10
	this.height = 10
	this.aiStyle = 115
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.25
	this.noGravity = true
	this.catchItem = 5132
elseif (this.type == 670) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.housingCategory = 1
elseif (this.type == 671) then
	this.width = 14
	this.height = 14
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 5212
	this.npcSlots = 1
elseif (this.type == 672) then
	this.width = 14
	this.height = 14
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 5300
	this.npcSlots = 1
elseif (this.type == 673) then
	this.width = 14
	this.height = 14
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 5311
	this.npcSlots = 1
elseif (this.type == 674) then
	this.width = 14
	this.height = 14
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 5312
	this.npcSlots = 1
elseif (this.type == 675) then
	this.width = 14
	this.height = 14
	this.aiStyle = 24
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.knockBackResist = 0.8
	this.DeathSound = SoundID.NPCDeath1
	this.catchItem = 5313
	this.npcSlots = 1
elseif (this.type == 676) then
	this.width = 24
	this.height = 18
	this.aiStyle = 1
	this.damage = 20
	this.defense = 5
	this.lifeMax = 80
	this.scale = 1
	this.value = Item.buyPrice(0, 0, 1, 50)
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
elseif (this.type == 677) then
	this.width = 10
	this.height = 10
	this.aiStyle = 64
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath1
	this.npcSlots = 0.2
	this.noGravity = true
	this.catchItem = 5350
	this.noTileCollide = true
elseif (this.type == 678 or this.type == 679 or this.type == 680 or this.type == 681 or this.type == 682 or this.type == 683 or this.type == 684) then
	this.townNPC = true
	this.friendly = true
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 10
	this.defense = 15
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.knockBackResist = 0.5
	this.housingCategory = 1
elseif (this.type == 685) then
	this.width = 30
	this.height = 28
	this.aiStyle = 1
	this.damage = 0
	this.defense = 10
	this.knockBackResist = 0.3
	this.lifeMax = 250
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.value = 0
	this.rarity = 2
	this.friendly = true
elseif (this.type == 686) then
	this.width = 20
	this.height = 20
	this.aiStyle = 125
	this.damage = 0
	this.defense = 0
	this.knockBackResist = 0.3
	this.lifeMax = 1
	this.DeathSound = SoundID.NPCDeath63
	this.value = 0
	this.rarity = 2
	this.noGravity = true
	this.noTileCollide = true
	this.dontTakeDamageFromHostiles = true
elseif (this.type == 687) then
	this.width = 18
	this.height = 20
	this.aiStyle = 7
	this.damage = 0
	this.defense = 0
	this.lifeMax = 5
	this.rarity = 2
	this.HitSound = SoundID.NPCHit1
	this.DeathSound = SoundID.NPCDeath6
	this.catchItem = 2121
end

-- ==================

	if (not spawnparams.sizeScaleOverride) then
		this.width = math.floor(this.width * this.scale)
		this.height = math.floor(this.height * this.scale)
	else
		local num3 = math.floor(this.width * this.scale)
		local num4 = math.floor(this.height * this.scale)
		--this.position.X = this.position.X + (num3 / 2)
		--this.position.Y = this.position.Y + num4
		this.scale = spawnparams.sizeScaleOverride
		this.width = math.floor(this.width * this.scale)
		this.height = math.floor(this.height * this.scale)
		if (this.height == 16 or this.height == 32) then
			this.height =  this.height + 1
		end
		--this.position.X = this.position.X - (this.width / 2)
		--this.position.Y = this.position.Y - this.height
	end
	this.life = this.lifeMax
	this.defDamage = this.damage
	this.defDefense = this.defense
	this.netID = this.type
	--1.4.1 move all debuff Immunity info here:
	if DebuffImmunity[this.type] then
		for _,v in ipairs(DebuffImmunity[this.type]) do
			this.buffImmune[v] = true
		end
	end
	if (NPCID.Sets('ShimmerImmunity', this.type)) then
		this.buffImmune[353] = true
	end
	if ImmuneToAll[this.type] then
		this.buffImmuneAll = true
	elseif ImmuneToAllNotWhips[this.type] then
		this.buffImmuneAllNotWhips = true
	end
    if (Main.zenithWorld) then
        getZenithSeedAdjustmentsBeforeEverything();
    end
	if (Main.getGoodWorld) then
		getGoodAdjustments()
	end
	if (Main.tenthAnniversaryWorld) then
		getTenthAnniversaryAdjustments()
	end
    -- if (this.type >= 0 && this.type < NPCID.Count && Main.npcCatchable[this.type])
    -- {
    --     this.catchableNPCTempImmunityCounter = 90;
    --     this.friendly = true;
    -- }
	ScaleStats(spawnparams.playerCountForMultiplayerDifficultyOverride, spawnparams.gameModeData, spawnparams.strengthMultiplierOverride)
	this.life = this.lifeMax
end


--------------------


---Converts a table to a string.
---@param var table
---@return string
local function export(var)
	local resultStr = mw.dumpObject(var)
	resultStr = string.gsub(resultStr, "table#1 ", "")
	resultStr = string.gsub(resultStr, "metatable = table#2", "")
	resultStr = string.gsub(resultStr, "  +", "")
	resultStr = string.gsub(resultStr, "\n+", "\n")
	return resultStr
end

---Main function. Returns a table of stats for the specified NPC ID.
---@param npcid number
---@return table
local function npcinfo(npcid, playerCount)

	Main.hardMode = false
	NPC.downedPlantBoss = false

	----------
	-- normal stats
	----------
	SetDefaults(npcid, {playerCountForMultiplayerDifficultyOverride = playerCount})
	if not ExcludedFromDeathTally(npcid) then
		this.banner = BannerToItem(npcToBanner(BannerID()))
	end
	local info = {}
	for k,v in pairs(this) do
		info[k] = v
	end
	info.buffImmune = {}
	for k,v in pairs(this.buffImmune) do
		info.buffImmune[k] = v
	end

	info.life = nil
	info.defDamage = nil
	info.defDefense = nil
	info.statsAreScaledForThisManyPlayers = nil
	info.strengthMultiplier = nil

	----------
	-- expert/master stats
	----------
	local fields = {'lifeMax', 'damage', 'defense', 'knockBackResist', 'value'}

	-- expert pre-hardmode
	Main.hardMode = false
	NPC.downedPlantBoss = false
	SetDefaults(npcid, {gameModeData = GameModeData.ExpertMode, playerCountForMultiplayerDifficultyOverride = playerCount})
	for _, v in pairs(fields) do
		info[v .. '_e'] = this[v]
	end
	-- expert hardmode
	Main.hardMode = true
	SetDefaults(npcid, {gameModeData = GameModeData.ExpertMode, playerCountForMultiplayerDifficultyOverride = playerCount})
	for _, v in pairs(fields) do
		info[v .. '_e_hm'] = this[v]
	end
	-- expert hardmode post-plantera
	NPC.downedPlantBoss = true
	SetDefaults(npcid, {gameModeData = GameModeData.ExpertMode, playerCountForMultiplayerDifficultyOverride = playerCount})
	for _, v in pairs(fields) do
		info[v .. '_e_pp'] = this[v]
	end

	-- master pre-hardmode
	Main.hardMode = false
	NPC.downedPlantBoss = false
	SetDefaults(npcid, {gameModeData = GameModeData.MasterMode, playerCountForMultiplayerDifficultyOverride = playerCount})
	for _, v in pairs(fields) do
		info[v .. '_m'] = this[v]
	end
	-- master hardmode
	Main.hardMode = true
	SetDefaults(npcid, {gameModeData = GameModeData.MasterMode, playerCountForMultiplayerDifficultyOverride = playerCount})
	for _, v in pairs(fields) do
		info[v .. '_m_hm'] = this[v]
	end
	-- master hardmode post-plantera
	NPC.downedPlantBoss = true
	SetDefaults(npcid, {gameModeData = GameModeData.MasterMode, playerCountForMultiplayerDifficultyOverride = playerCount})
	for _, v in pairs(fields) do
		info[v .. '_m_pp'] = this[v]
	end

	----------
	-- filter the stats
	----------
	local Valid = {} -- these are the stats that will be included, all others will be ignored
	do
		Valid.DeathSound = true
		Valid.HitSound = true
		Valid.Opacity = true
		Valid.aiStyle = true
		Valid.alpha = true
		Valid.behindTiles = true
		Valid.boss = true
		Valid.buffImmune = true
		Valid.buffImmuneAll = true
		Valid.buffImmuneAllNotWhips = true
		Valid.catchItem = true
		Valid.coldDamage = true
		Valid.damage = true
		Valid.damage_e = true
		Valid.damage_e_hm = true
		Valid.damage_e_pp = true
		Valid.damage_hm = true
		Valid.damage_m = true
		Valid.damage_m_hm = true
		Valid.damage_m_pp = true
		Valid.damage_pp = true
		Valid.defense = true
		Valid.defense_e = true
		Valid.defense_e_hm = true
		Valid.defense_e_pp = true
		Valid.defense_hm = true
		Valid.defense_m = true
		Valid.defense_m_hm = true
		Valid.defense_m_pp = true
		Valid.defense_pp = true
		Valid.dontCountMe = true
		Valid.dontTakeDamage = true
		Valid.friendly = true
		Valid.height = true
		Valid.housingCategory = true
		Valid.internalName = true
		Valid.knockBackResist = true
		Valid.knockBackResist_e = true
		Valid.knockBackResist_e_hm = true
		Valid.knockBackResist_e_pp = true
		Valid.knockBackResist_hm = true
		Valid.knockBackResist_m = true
		Valid.knockBackResist_m_hm = true
		Valid.knockBackResist_m_pp = true
		Valid.knockBackResist_pp = true
		Valid.lavaImmune = true
		Valid.lifeMax = true
		Valid.lifeMax_e = true
		Valid.lifeMax_e_hm = true
		Valid.lifeMax_e_pp = true
		Valid.lifeMax_hm = true
		Valid.lifeMax_m = true
		Valid.lifeMax_m_hm = true
		Valid.lifeMax_m_pp = true
		Valid.lifeMax_pp = true
		Valid.name = true
		Valid.netAlways = true
		Valid.netID = true
		Valid.noGravity = true
		Valid.noTileCollide = true
		Valid.npcSlots = true
		Valid.rarity = true
		Valid.scale = true
		Valid.timeLeft = true
		Valid.townNPC = true
		Valid.trapImmune = true
		Valid.type = true
		Valid.value = true
		Valid.value_e = true
		Valid.value_e_hm = true
		Valid.value_e_pp = true
		Valid.value_hm = true
		Valid.value_m = true
		Valid.value_m_hm = true
		Valid.value_m_pp = true
		Valid.value_pp = true
		Valid.width = true
		Valid.banner = true
	end

	for k,v in pairs(info) do
		if not Valid[k] then
			info[k] = nil
		end
	end

	if npcid == 0 then
		info.banner = 0
		info.buffImmune = {}
	end

	return info
end

-----------------------------------------------------------------
-- main return object
return {

	-- for other modules: get all stats of an item, return them as a table
	getInfo = npcinfo,

	-- for templates: generate a data slice
	gen = function(frame)
		currentFrame = frame -- cache
		local min = tonumber(getArg(1)) or 0
		local max = tonumber(getArg(2)) or 0

		local output = ''

		local reset = npcinfo(0)

		for npcid = min, max do
			local npcinfoTable = npcinfo(npcid)
			local outputTable = {}
			if npcid == 0 then
				outputTable = reset
			else
				for stat, value in pairs(npcinfoTable) do
					if value ~= reset[stat] then
						outputTable[stat] = value -- only append to output if stat has a non-default value
					end
				end
			end
			local buffImmune = nil
			for k, v in pairs(npcinfoTable.buffImmune) do
				if v then
					if buffImmune then
						buffImmune = buffImmune .. ', ' .. k
					else
						buffImmune = k
					end
				end
			end
			outputTable.buffImmune = buffImmune
			outputTable.internalName = frame:expandTemplate{title = 'NpcInternalNameFromId', args = {npcid} }

			-- NPC display name
			outputTable.name = gametext('NPCName.' .. outputTable.internalName, 'en')
			-- gametext might yield no result (e.g. for "variant" NPCs),
			-- in that case try again with the "base" NPC's internal name
			if outputTable.name == '' or not outputTable.name then
				local baseNpcId = npcinfoTable.type
				-- in a few edge cases, the "base" NPC for the display name is not equal to the "type" stat
				if npcid == 403 or npcid == 404 then
					baseNpcId = 402
				elseif npcid == 408 then
					baseNpcId = 407
				end
				outputTable.name = gametext('NPCName.' .. frame:expandTemplate{title = 'NpcInternalNameFromId', args = {baseNpcId} }, 'en')
			end

			output = output .. '\n[' .. npcid .. '] = ' .. export(outputTable) .. ','
		end

		return output
	end,

	-- for templates: print the "meta" rows with timestamp and Terraria version
	genMeta = function(frame)
		local timestamp = os.date('!%Y-%m-%d %H:%M:%S') .. ' (+00:00)' -- the "!" forces UTC
		return
			"\n['_terrariaversion'] = '" .. terrariaversion .. "',"
			.. "\n['_generated'] = '" .. timestamp .. "',"
	end,

}