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",
}
}
}