Haven't posted in a long while and its been over a year since I created Princes of Pale Moon mod but I'm ramping up to hopefully do a sequel mod and this time a bit more elaborate since asset packs are now available. I am however a bit rusty and honestly, a poor Lua scripter to begin with. Specifically im stumped on how to get the Goromorg going. I've searched the forums and understand that I need to fill in the missing sounds etc. Thats super and all but I still cant get him to work. I keep getting hit with a "[string "soundSystem.lua"] :0: File not found: assets/samples/monsters/goromorg_walk_01.wave". What I did was I pulled the goromorg lau from the asset 2 pack, placed it in my mod_assets/script folder for my mod. Then I updated my "Inti" Lua with "import "assets/scripts/monsters/goromorg.lua" "
I'm sure I'm missing something silly and someone could probably solve this lickety split so here I am.
Code: Select all
defineObject{
name = "goromorg",
baseObject = "base_monster",
components = {
{
class = "Model",
model = "assets/models/monsters/goromorg.fbx",
storeSourceData = true,
},
{
class = "Animation",
animations = {
idle = "assets/animations/monsters/goromorg/goromorg_idle.fbx",
moveForward = "assets/animations/monsters/goromorg/goromorg_walk.fbx",
strafeLeft = "assets/animations/monsters/goromorg/goromorg_strafe_left.fbx",
strafeRight = "assets/animations/monsters/goromorg/goromorg_strafe_right.fbx",
turnLeft = "assets/animations/monsters/goromorg/goromorg_turn_left.fbx",
turnRight = "assets/animations/monsters/goromorg/goromorg_turn_right.fbx",
attack = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
getHitFrontLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_front_left.fbx",
getHitFrontRight = "assets/animations/monsters/goromorg/goromorg_get_hit_front_right.fbx",
getHitBack = "assets/animations/monsters/goromorg/goromorg_get_hit_back.fbx",
getHitLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_left.fbx",
getHitRight = "assets/animations/monsters/goromorg/goromorg_get_hit_right.fbx",
fall = "assets/animations/monsters/goromorg/goromorg_get_hit.fbx",
},
currentLevelOnly = true,
},
{
class = "Monster",
meshName = "goromorg_mesh",
hitSound = "slime_hit", -- identical to goromorg_hit
dieSound = "goromorg_die",
hitEffect = "hit_dust",
capsuleHeight = 0.8,
capsuleRadius = 0.25,
collisionRadius = 0.8,
health = 400,
protection = 0,
exp = 1000,
immunities = { "sleep", "blinded" },
},
{
class = "GoromorgBrain",
name = "brain",
sight = 5,
seeInvisible = true,
allAroundSight = true,
morale = 100,
},
{
class = "MonsterMove",
name = "move",
sound = "dark_acolyte_walk",
cooldown = 1,
animationSpeed = 1.3,
},
{
class = "MonsterTurn",
name = "turn",
sound = "dark_acolyte_walk",
animationSpeed = 1.5,
},
{
class = "MonsterAttack",
name = "rangedAttack",
attackPower = 40,
cooldown = 6,
animation = "attack",
sound = "wizard_ranged_attack",
onAttack = function(self)
local h = 1.4
local r = math.random()
if r < 0.45 then
-- cast fireball
self.go.monster:shootProjectile("fireball_large", h, 40)
elseif r < 0.7 then
-- cast lightning bolt
self.go.monster:shootProjectile("lightning_bolt_greater", h, 40)
elseif r < 0.8 then
-- cast poison bolt
self.go.monster:shootProjectile("poison_bolt", h, 40)
else
-- cast ice shards
local dx,dy = getForward(self.go.facing)
local spell = spawn("ice_shards", self.go.level, self.go.x + dx, self.go.y + dy, self.go.facing, self.go.elevation)
spell.tiledamager:setAttackPower(40)
end
end,
},
{
class = "GoromorgShield",
},
{
class = "Particle",
parentNode = "light1",
particleSystem = "goromorg_lantern",
},
{
class = "Light",
parentNode = "light1",
color = vec(0.5, 1.0, 2.5),
brightness = 4,
range = 4.5,
fillLight = true,
},
},
}
defineMaterial{
name = "goromorog1",
diffuseMap = "assets/textures/monsters/goromorg_dif.tga",
specularMap = "assets/textures/monsters/goromorg_spec.tga",
normalMap = "assets/textures/monsters/goromorg_normal.tga",
doubleSided = false,
lighting = true,
alphaTest = true,
blendMode = "Opaque",
textureAddressMode = "Wrap",
glossiness = 20,
depthBias = 0,
}
defineSound{
name = "goromorg_walk",
filename = {
"assets/samples/monsters/wizard_warp_01.wav",
"assets/samples/monsters/wizard_warp_02.wav",
"assets/samples/monsters/wizard_warp_03.wav",
},
loop = false,
volume = 0.2,
minDistance = 2,
maxDistance = 12,
}
defineSound{
name = "goromorg_footstep",
filename = {
"assets/samples/monsters/wizard_warp_01.wav",
"assets/samples/monsters/wizard_warp_02.wav",
"assets/samples/monsters/wizard_warp_03.wav",
},
loop = false,
volume = 0.1,
minDistance = 1,
maxDistance = 10,
}
defineSound{
name = "goromorg_attack",
filename = "assets/samples/monsters/wizard_ranged_attack_01.wav",
loop = false,
volume = 1.5,
minDistance = 2,
maxDistance = 10,
}
defineSound{
name = "goromorg_hit",
filename = {
"assets/samples/weapons/hit_bone_01.wav",
"assets/samples/weapons/hit_bone_02.wav",
"assets/samples/weapons/hit_flesh_01.wav",
},
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
defineSound{
name = "goromorg_die",
filename = "assets/samples/monsters/uggardian_die_01.wav",
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
defineAnimationEvent{
animation = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
event = "attack",
frame = 10,
}
defineParticleSystem{
name = "goromorg_lantern",
emitters = {
-- smoke
{
emissionRate = 5,
emissionTime = 0,
maxParticles = 50,
boxMin = {-0.03, 0.1, -0.03},
boxMax = { 0.03, 0.1, 0.03},
sprayAngle = {0,30},
velocity = {0.1,0.5},
texture = "assets/textures/particles/smoke_01.tga",
lifetime = {1,1.25},
color0 = {0.08, 0.11, 0.15},
opacity = 1,
fadeIn = 0.5,
fadeOut = 0.5,
size = {0.3, 0.6},
gravity = {0,0,0},
airResistance = 0.1,
rotationSpeed = 0.6,
blendMode = "Translucent",
objectSpace = false,
},
-- flames
{
emissionRate = 30,
emissionTime = 0,
maxParticles = 100,
boxMin = {-0.03, -0.07, 0.03},
boxMax = { 0.03, -0.07, -0.03},
sprayAngle = {0,10},
velocity = {0.1, 0.4},
texture = "assets/textures/particles/goromorg_lantern.tga",
frameRate = 45,
frameSize = 64,
frameCount = 16,
lifetime = {0.25, 0.85},
colorAnimation = false,
color0 = {1.5, 1.5, 1.5},
opacity = 1,
fadeIn = 0.15,
fadeOut = 0.3,
size = {0.17, 0.015},
gravity = {0,0,0},
airResistance = 1.0,
rotationSpeed = 1,
blendMode = "Additive",
depthBias = -0.0005,
objectSpace = true,
},
-- inner glow
{
spawnBurst = true,
emissionRate = 1,
emissionTime = 0,
maxParticles = 1,
boxMin = {0,-0.05,0.0},
boxMax = {0,-0.05,0.0},
sprayAngle = {0,30},
velocity = {0,0},
texture = "assets/textures/particles/glow.tga",
lifetime = {1000000, 1000000},
colorAnimation = false,
color0 = {0.07, 0.11, 0.23},
opacity = 1,
fadeIn = 0.1,
fadeOut = 0.1,
size = {0.5, 0.5},
gravity = {0,0,0},
airResistance = 1,
rotationSpeed = 0,
blendMode = "Additive",
depthBias = -0.0005,
objectSpace = true,
},
-- outer glow
{
spawnBurst = true,
emissionRate = 1,
emissionTime = 0,
maxParticles = 1,
boxMin = {0,0,0},
boxMax = {0,0,0},
sprayAngle = {0,30},
velocity = {0,0},
texture = "assets/textures/particles/glow.tga",
lifetime = {1000000, 1000000},
colorAnimation = false,
color0 = {0.07, 0.11, 0.23},
opacity = 0.25,
fadeIn = 0.1,
fadeOut = 0.1,
size = {2, 2},
gravity = {0,0,0},
airResistance = 1,
rotationSpeed = 0,
blendMode = "Additive",
depthBias = -0.0005,
objectSpace = true,
}
}
}
defineParticleSystem{ -- used for diamond edge boss
name = "goromorg_torch",
emitters = {
-- smoke
{
emissionRate = 5,
emissionTime = 0,
maxParticles = 50,
boxMin = {-0.03, 0.1, -0.03},
boxMax = { 0.03, 0.1, 0.03},
sprayAngle = {0,30},
velocity = {0.1,0.5},
texture = "assets/textures/particles/smoke_01.tga",
lifetime = {1,1.75},
color0 = {0.15, 0.15, 0.15},
opacity = 1,
fadeIn = 0.5,
fadeOut = 0.5,
size = {0.3, 0.6},
gravity = {0,0,0},
airResistance = 0.1,
rotationSpeed = 0.6,
blendMode = "Translucent",
},
-- flames
{
emissionRate = 50,
emissionTime = 0,
maxParticles = 100,
boxMin = {-0.03, -0.03, 0.03},
boxMax = { 0.03, 0.03, -0.03},
sprayAngle = {0,10},
velocity = {0.2, 1},
texture = "assets/textures/particles/goromorg_lantern.tga",
frameRate = 35,
frameSize = 64,
frameCount = 16,
lifetime = {0.25, 0.85},
colorAnimation = true,
color0 = {2, 2, 2},
color1 = {1.0, 1.0, 1.0},
color2 = {0.25, 0.5, 1.0},
color3 = {0.1, 0.3, 1.0},
opacity = 1,
fadeIn = 0.15,
fadeOut = 0.3,
size = {0.35, 0.015},
gravity = {0,0,0},
airResistance = 1.0,
rotationSpeed = 1,
blendMode = "Additive",
depthBias = 0.1,
},
-- 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 = {1000000, 1000000},
colorAnimation = false,
color0 = {0.08, 0.11, 0.23},
opacity = 1,
fadeIn = 0.1,
fadeOut = 0.1,
size = {2, 2},
gravity = {0,0,0},
airResistance = 1,
rotationSpeed = 0,
blendMode = "Additive",
depthBias = 0.1,
}
}
}
defineSound{
name = "goromorg_die",
filename = "assets/samples/monsters/tentacles_die_01.wav",
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}