
Monsters - based on Snails brought back from LoG1 (by Prozail)
Code: Select all
defineAnimationEvent{
animation = "assets/animations/monsters/snail/snail_attack.fbx",
event = "attack",
frame = 13,
}
defineObject{
name = "snail",
baseObject = "base_monster",
components = {
{
class = "Model",
model = "assets/models/monsters/snail.fbx",
storeSourceData = true,
},
{
class = "Animation",
name = "animation",
currentLevelOnly = true,
animations = {
idle = "assets/animations/monsters/snail/snail_idle.fbx",
moveForward = "assets/animations/monsters/snail/snail_walk.fbx",
turnLeft = "assets/animations/monsters/snail/snail_turn_left.fbx",
turnRight = "assets/animations/monsters/snail/snail_turn_right.fbx",
attack = "assets/animations/monsters/snail/snail_attack.fbx",
getHitFrontLeft = "assets/animations/monsters/snail/snail_get_hit_front_left.fbx",
getHitFrontRight = "assets/animations/monsters/snail/snail_get_hit_front_right.fbx",
getHitBack = "assets/animations/monsters/snail/snail_get_hit_back.fbx",
getHitLeft = "assets/animations/monsters/snail/snail_get_hit_left.fbx",
getHitRight = "assets/animations/monsters/snail/snail_get_hit_right.fbx",
fall = "assets/animations/monsters/snail/snail_get_hit_front_left.fbx",
},
},
{
class = "Monster",
meshName = "snail_mesh",
level=1,
health = 90,
evasion = -10,
exp = 60,
lootDrop = { 75, "snail_slice", 10, "snail_slice" },
traits = { "animal" },
hitEffect = "hit_goo",
capsuleHeight = 0.2,
capsuleRadius = 0.7,
hitSound = "snail_hit",
dieSound = "snail_die",
},
{
class = "MeleeBrain",
name = "brain",
sight = 2.5,
},
{
class = "MonsterMove",
name = "move",
sound = "snail_walk",
resetBasicAttack = false,
turnDir = 0,
cooldown = 4,
},
{
class = "MonsterTurn",
name = "turn",
sound = "snail_walk",
cooldown = 4,
},
{
class = "MonsterAttack",
name = "basicAttack",
sound = "snail_attack",
cooldown = 4,
attackPower = 6,
animationSpeed = 1,
animation = "attack",
},
}
}
Code: Select all
defineMaterial{
name = "snail",
diffuseMap = "assets/textures/monsters/snail_dif.tga",
specularMap = "assets/textures/monsters/snail_spec.tga",
normalMap = "assets/textures/monsters/snail_normal.tga",
doubleSided = false,
lighting = true,
alphaTest = false,
blendMode = "Opaque",
textureAddressMode = "Wrap",
glossiness = 100,
depthBias = 0,
}
defineMaterial{
name = "snail_shell",
diffuseMap = "assets/textures/monsters/snail_dif.tga",
specularMap = "assets/textures/monsters/snail_spec.tga",
normalMap = "assets/textures/monsters/snail_normal.tga",
doubleSided = false,
lighting = true,
alphaTest = false,
blendMode = "Opaque",
textureAddressMode = "Wrap",
glossiness = 40,
depthBias = 0,
}
--- Sounds
defineSound{
name = "snail_walk",
filename = "assets/samples/monsters/snail_walk_01.wav",
loop = false,
volume = 0.7,
minDistance = 1,
maxDistance = 10,
}
defineSound{
name = "snail_attack",
filename = {
"assets/samples/monsters/snail_attack_01.wav",
--"assets/samples/monsters/snail_attack_02.wav",
},
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
defineSound{
name = "snail_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 = "snail_die",
filename = "assets/samples/monsters/snail_die_01.wav",
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
Code: Select all
defineAnimationEvent{
animation = "assets/animations/monsters/ice_lizard/ice_lizard_attack.fbx",
event = "attack",
frame = 10,
}
defineAnimationEvent{
animation = "assets/animations/monsters/ice_lizard/ice_lizard_attack_left.fbx",
event = "attack",
frame = 10,
}
defineAnimationEvent{
animation = "assets/animations/monsters/ice_lizard/ice_lizard_attack_right.fbx",
event = "attack",
frame = 10,
}
defineAnimationEvent{
animation = "assets/animations/monsters/ice_lizard/ice_lizard_walk.fbx",
event = "footstep",
frame = 10,
}
defineAnimationEvent{
animation = "assets/animations/monsters/ice_lizard/ice_lizard_walk.fbx",
event = "footstep",
frame = 21,
}
defineAnimationEvent{
animation = "assets/animations/monsters/ice_lizard/ice_lizard_turn_left.fbx",
event = "footstep",
frame = 10,
}
defineAnimationEvent{
animation = "assets/animations/monsters/ice_lizard/ice_lizard_turn_right.fbx",
event = "footstep",
frame = 10,
}
defineObject{
name = "ice_lizard",
baseObject = "base_monster",
components = {
{
class = "Model",
model = "assets/models/monsters/ice_lizard.fbx",
storeSourceData = true,
},
{
class = "Animation",
name = "animation",
currentLevelOnly = true,
animations = {
idle = "assets/animations/monsters/ice_lizard/ice_lizard_idle.fbx",
moveForward = "assets/animations/monsters/ice_lizard/ice_lizard_walk.fbx",
turnLeft = "assets/animations/monsters/ice_lizard/ice_lizard_turn_left.fbx",
turnRight = "assets/animations/monsters/ice_lizard/ice_lizard_turn_right.fbx",
attack = "assets/animations/monsters/ice_lizard/ice_lizard_attack.fbx",
turnAttackLeft = "assets/animations/monsters/ice_lizard/ice_lizard_attack_left.fbx",
turnAttackRight = "assets/animations/monsters/ice_lizard/ice_lizard_attack_right.fbx",
getHitFrontLeft = "assets/animations/monsters/ice_lizard/ice_lizard_get_hit_front_left.fbx",
getHitFrontRight = "assets/animations/monsters/ice_lizard/ice_lizard_get_hit_front_right.fbx",
getHitBack = "assets/animations/monsters/ice_lizard/ice_lizard_get_hit_back.fbx",
getHitLeft = "assets/animations/monsters/ice_lizard/ice_lizard_get_hit_left.fbx",
getHitRight = "assets/animations/monsters/ice_lizard/ice_lizard_get_hit_right.fbx",
fall = "assets/animations/monsters/ice_lizard/ice_lizard_get_hit_front_left.fbx",
},
},
{
class = "Monster",
meshName = "ice_lizard_mesh",
level=1,
health = 650,
evasion = 10,
exp = 675,
lootDrop = { 70, "ice_lizard_steak" },
traits = { "animal" },
immunities = { "blinded", "frozen" },
resistances = { cold="immune", fire="weak"},
hitEffect = "hit_blood",
capsuleHeight = 0.4,
capsuleRadius = 0.5,
footstepSound = "ice_lizard_footstep",
hitSound = "ice_lizard_hit",
dieSound = "ice_lizard_die",
--onPerformAction = function(self,a,b,c)
--print(self.go.id,a,b,c)
--end
},
{
class = "IceLizardBrain",
name = "brain",
},
{
class = "MonsterMove",
name = "move",
sound = "ice_lizard_walk",
resetBasicAttack = false,
turnDir = 0,
cooldown = 1,
},
{
class = "MonsterTurn",
name = "turn",
sound = "ice_lizard_walk",
cooldown = 1,
},
{
class = "MonsterAttack",
name = "basicAttack",
sound = "ice_lizard_attack",
cooldown = 1,
attackPower = 40,
animationSpeed = 1,
animation = "attack",
},
{
class = "MonsterAttack",
name = "turnAttack",
sound = "ice_lizard_attack",
cooldown = 1,
attackPower = 40,
animationSpeed = 1,
animations = {"attack_right", "attack_left"},
turnToAttackDirection = true,
},
}
}
Code: Select all
defineMaterial{
name = "ice_lizard",
diffuseMap = "assets/textures/monsters/ice_lizard_dif.tga",
specularMap = "assets/textures/monsters/ice_lizard_spec.tga",
normalMap = "assets/textures/monsters/ice_lizard_normal.tga",
doubleSided = false,
lighting = true,
alphaTest = false,
blendMode = "Opaque",
textureAddressMode = "Wrap",
glossiness = 65,
depthBias = 0,
}
Code: Select all
defineSound{
name = "ice_lizard_attack",
filename = "assets/samples/monsters/ice_lizard_attack_01.wav",
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
defineSound{
name = "ice_lizard_walk",
filename = "assets/samples/monsters/ice_lizard_walk_01.wav",
loop = false,
volume = 0.5,
minDistance = 1,
maxDistance = 4,
}
defineSound{
name = "ice_lizard_footstep",
filename = "assets/samples/monsters/ice_lizard_footstep_01.wav",
loop = false,
volume = 0.4,
minDistance = 1,
maxDistance = 6,
}
defineSound{
name = "ice_lizard_hit",
filename = {
"assets/samples/weapons/hit_bone_01.wav",
"assets/samples/weapons/hit_bone_02.wav",
"assets/samples/weapons/hit_flesh_01.wav",
"assets/samples/monsters/ice_lizard_hit_01.wav",
"assets/samples/monsters/ice_lizard_hit_02.wav",
},
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
defineSound{
name = "ice_lizard_die",
filename = "assets/samples/monsters/ice_lizard_die_01.wav",
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
Code: Select all
defineTile{
name = "user_floor",
editorIcon = 192,
color = {110,130,110,255},
solid = false,
builder = "dungeon",
ceiling = {
"user_ceiling_flat_00", 50,
"user_ceiling_flat_01", 50,
},
wall = {
"user_wall_stone", 50,
"user_wall_scratch", 10,
"user_wall_crack", 5,
"user_wall_lichen", 10,
"user_wall_moss_a", 15,
"user_wall_moss_b", 15,
},
floor = {
"user_floor", 100,
},
ceilingEdgeVariations = false,
automapTile = “rocky_wall”,
}
Code: Select all
defineObject{
name = "user_wall_stone",
components = {
{
class = "Model",
model = "mod_assets/models/env/user_wall_stone.fbx",
},
},
placement = "wall",
automapTile = "wall",
}
defineObject{
name = "user_wall_crack",
components = {
{
class = "Model",
model = "mod_assets/models/env/user_wall_crack.fbx",
},
},
placement = "wall",
}
defineObject{
name = "user_wall_scratch",
components = {
{
class = "Model",
model = "mod_assets/models/env/user_wall_scratch.fbx",
},
},
placement = "wall",
}
etc...
Door - (by Doridion) - made clickable

Code: Select all
defineObject{
name = "my_clickable_door",
baseObject = "[name of the door you want to use]",
components = {
{
class = "Door",
sparse = true,
killPillars = true,
},
{
class = "Clickable",
maxDistance = 1,
-- offset vector is the point where begin the clickable box
offset = vec(0,1.3,0),
-- size is the size of our clickable box
size = vec(2.5,2.5,0.3),
onClick = function(self)
self.go.door:toggle()
end
},
{
class = "Controller",
onOpen = function(self, name)
self.go.door:open()
end,
onClose = function(self)
self.go.door:close()
end,
onToggle = function(self)
self.go.door:toggle()
end,
},
},
placement = "wall",
editorIcon = 124,
}
Items - by Akroma222 who has them gathered there Whole topic is a combination of item/item packs with links to download:
Sounds
Icons
Misc items
Sample code with water bottle (by Doridion - download here because of custom models):
Code: Select all
defineObject{
name = "user_food_water_full",
baseObject = "base_item",
components = {
{
class = "Model",
model = "mod_assets/models/items/user_food_water_full.fbx",
},
{
class = "Item",
uiName = "Water",
gfxAtlas = "mod_assets/textures/gui/water_bottle_icon.tga",
gfxIndex = 1,
weight = 0.7,
multiple = 1,
traits = { "food" },
description = "A water bottle",
},
{
class = "UsableItem",
nutritionValue = 200,
emptyItem = "user_food_water_empty",
onUseItem = function(self,champion)
champion:regainEnergy(20)
champion:regainHealth(100)
end
},
}
}
Code: Select all
defineMaterial{
name = "user_food_water_full",
diffuseMap = "mod_assets/textures/items/user_food_water_full_dif.tga",
specularMap = "mod_assets/textures/items/user_food_water_full_spec.tga",
normalMap = "mod_assets/textures/items/user_food_water_full_normal.tga",
doubleSided = false,
lighting = true,
alphaTest = false,
blendMode = "Opaque",
textureAddressMode = "Wrap",
glossiness = 10,
depthBias = 0,
}
Code: Select all
defineObject{
name = "knife",
baseObject = "base_item",
components = {
{
class = "Model",
model = "assets/models/items/knife.fbx",
},
{
class ="Item",
uiName = "Knife",
--gfxAtlas = "you can set your own",
gfxIndex = 47,
weight = 0.7,
impactSound = "impact_blade",
traits = { "daggers", "light_weapon" },
description = "A blunt, rusty knife probably used for scaling fish."
},
{
class = "MeleeAttack",
attackPower = 5,
accuracy = 0,
swipe = "horizontal",
attackSound = "swipe",
cooldown = 3.0,
baseDamageStat = "dexterity",
damageType = "physical",
requirements = {"light_weapons" ,2},
gameEffect = "A test text you can set.",
},
}
}

:EDIT: original post below for reference
As pointed out preparing us an asset pack takes more time that any of us would want

And i mean just definitions, not actual models, etc.
I know we have like property list, method list, etc. but having a complete and working definition would be easier to read and therefor easier to adapt to own needs
