new monster problem after freezing it

Ask for help about creating mods and scripts for Grimrock 2 or share your tips, scripts, tools and assets with other modders here. Warning: forum contains spoilers!
Post Reply
Granamir
Posts: 202
Joined: Wed Jan 07, 2015 7:19 pm

new monster problem after freezing it

Post by Granamir »

Hi everyone,
trying to make starting works for a new dungeon and i'm trying to create some new monsters. Since my 3d skills are not enought i'm trying to use models already in game.
I made a black slime model, it works perfectly except when i freez, when he frees himself from ice he changes color becoming green.
Anyone knows why it happens?

Ty

Here is my script:

Code: Select all

defineObject{
	name = "oil_slime",
	baseObject = "green_slime",
	components = {
		{
			class = "Model",
			model = "assets/models/monsters/green_slime.fbx",
			material = "oil_slime",
			storeSourceData = true,
		},
		{
			class = "Monster",
			meshName = "green_slime_mesh",
			hitSound = "slime_hit",
			dieSound = "slime_die",
			hitEffect = "hit_oil_slime",
			capsuleHeight = 0.2,
			capsuleRadius = 0.7,
			collisionRadius = 0.8,
			health = 500,
			immunities = { "assassination", "backstab", "sleep", "blinded", "petrified"},
			evasion = -20,
			exp = 250,
			resistances = {
				fire = "weak",
				poison = "immune",
				ice = "immune",
			},
		},
		{
			class = "MonsterAttack",
			name = "basicAttack",
			attackPower = 15,
			animationSpeed = 2,
			cooldown = 3,
			sound = "slime_attack",
			onAttack = function(self)
				local doom = math.random(1,3)
				if doom == 1 then
					local x,y = party:getPosition()
					local obj = spawn("dark_bolt_blast", self.go.level, x, y, 0, self.go.elevation)
				end
			end,
		},
 		{
			class = "SlimeBrain",
			name = "brain",
			sight = 3,
			allAroundSight = true,
			morale = 100,
		},
		{
			class = "Light",
			parentNode = "light",
			range = 0, 
			brightness = 0,
			color = vec(0,0,0)
		}
	}
}

defineMaterial{
	name = "oil_slime",
	diffuseMap = "assets/textures/monsters/green_slime_dif.tga",
	specularMap = "assets/textures/common/white.tga",
	normalMap = "mod_assets/textures/oil_slime_normal.tga",
	doubleSided = false,
	lighting = true,
	alphaTest = true,
	blendMode = "Opaque",
	textureAddressMode = "Wrap",
	glossiness = 10,
	depthBias = 0,
	
	-- custom shader
	shader = "crystal",
	shadeTex = "mod_assets/textures/oil_emissive.tga",
	shadeTexAngle = 1.0,
	crystalIntensity = 10,
	onUpdate = function(self, time)
		self:setParam("shadeTexAngle", time*0.2)
	end,
}

defineParticleSystem{
	name = "hit_oil_slime",
	emitters = {
		{
			spawnBurst = true,
			maxParticles = 100,
			sprayAngle = {0,40},
			velocity = {1,5},
			objectSpace = false,
			texture = "mod_assets/textures/oil_slime.tga",
			frameRate = 40,
			frameSize = 32,
			frameCount = 40,
			lifetime = {0.7,1.5},
			colorAnimation = true,
			color0 = {4, 4, 4},
			color1 = {2, 2, 2},
			color2 = {1, 1, 1},
			color3 = {1, 1, 1},
			opacity = 1,
			fadeIn = 0.1,
			fadeOut = 0.3,
			size = {0.05, 0.2},
			gravity = {0,-10,0},
			airResistance = 0.1,
			rotationSpeed = 2,
			blendMode = "Translucent",
			clampToGroundPlane = true,
		},

		{
			spawnBurst = true,
			maxParticles = 50,
			sprayAngle = {0,360},
			velocity = {1,5},
			objectSpace = false,
			texture = "mod_assets/textures/oil_slime.tga",
			frameRate = 30,
			frameSize = 32,
			frameCount = 40,
			lifetime = {0.5,0.7},
			color0 = {1, 1, 1},
			opacity = 1,
			fadeIn = 0.1,
			fadeOut = 0.3,
			size = {0.1, 0.3},
			gravity = {0,0,0},
			airResistance = 7,
			rotationSpeed = 2,
			blendMode = "Additive",
			clampToGroundPlane = true,
		},

		-- glow
		{
			spawnBurst = true,
			emissionRate = 1,
			emissionTime = 0,
			maxParticles = 1,
			boxMin = {0,0,-0.1},
			boxMax = {0,0,-0.1},
			sprayAngle = {0,30},
			velocity = {0,0},
			texture = "assets/textures/particles/glow.tga",
			lifetime = {0.5, 0.5},
			colorAnimation = false,
			color0 = {1.5, 1.5, 1.5},
			opacity = 0.6,
			fadeIn = 0.01,
			fadeOut = 0.5,
			size = {1.2, 1.2},
			gravity = {0,0,0},
			airResistance = 1,
			rotationSpeed = 2,
			blendMode = "Additive",
		}
	}
}
Post Reply