custom character classes

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!
User avatar
FeMaiden
Posts: 290
Joined: Wed Jan 16, 2013 8:16 am

custom character classes

Post by FeMaiden »

okay, I knew i was gonna get sucked in to this "custom" stuff...

I noticed in the asset pack in the traits.lua file,

there's this

Code: Select all

defineTrait{
	name = "fighter",
	uiName = "Fighter",
	icon = 96,
	description = "As a fighter you are a master of close combat. You are trained to use a wide variety of weapons.",
	gameEffect = [[
	- Health 60 (+7 per level), Energy 30 (+3 per level)
	- Special attacks with melee weapons take half the time to build up and cost 25% less energy.]],
	onRecomputeStats = function(champion, level)
		if level > 0 then
			level = champion:getLevel()
			champion:addStatModifier("max_health", 60 + (level-1) * 7)
			champion:addStatModifier("max_energy", 30 + (level-1) * 3)
		end
	end,
}

and theres a char_classes.lua

with

Code: Select all

defineCharClass{
	name = "fighter",
	uiName = "Fighter",
	traits = { "melee_specialist" },
	optionalTraits = 2,
}
does this mean, I can create custom character classes with whatever health and energy growth rates I want? and then use getChampion:setClass() to set the class?
if that's true then i have another question, how can I set a graphical representation of the trait, so that it shows a customized image on the character sheet?
also if this is true..
does this also mean I can create brand new custom traits that don't exist in the game?


and again I see there is also a bunch of lua files for the monsters.
if I want to customize a monster, like change it's stats or remove it's loot drops, do I have to copy/paste the entire text from the lua file into the custom monster definitions file in my mod assets, and then make the changes?

like if I wanted to remove the loot drops of skeleton_commander so he no longer drops the 2 long swords, do I paste this

Code: Select all

{
			class = "Monster",
			meshName = "skeleton_knight_commander_mesh",
			footstepSound = "skeleton_footstep",
			hitSound = "skeleton_hit",
			dieSound = "skeleton_die",
			hitEffect = "hit_dust",
			capsuleHeight = 0.7,
			capsuleRadius = 0.25,
			collisionRadius = 0.6,			
			health = 900,
			protection = 15,
			evasion = 0,
			immunities = { "sleep", "blinded", "frozen" },
			resistances = {
				["poison"] = "immune",
				["shock"] = "weak",
			},
			traits = { "undead" },
			exp = 750,
			lootDrop = { 100, "long_sword", 100, "long_sword" },
		},
and then delete the line that says "lootDrop = { 100, "long_sword", 100, "long_sword" },"

and then if I want to adjust the xp award, i would change exp= 750 to exp = 1000 or something like that?
User avatar
Drakkan
Posts: 1318
Joined: Mon Dec 31, 2012 12:25 am

Re: custom character classes

Post by Drakkan »

yes yes and yes, you can create new classes, traits, pictures etc etc... I wonder if you even played some custom mods around where all these features are used. On the other side I understand not many mods is using these custom features.

I think it is only question of time when you will discover that you can totally customimize your party, make some members join / leave etc. etc.
welcome to the next level ;)
Breath from the unpromising waters.
Eye of the Atlantis
User avatar
FeMaiden
Posts: 290
Joined: Wed Jan 16, 2013 8:16 am

Re: custom character classes

Post by FeMaiden »

Drakkan wrote:yes yes and yes, you can create new classes, traits, pictures etc etc... I wonder if you even played some custom mods around where all these features are used. On the other side I understand not many mods is using these custom features.

I think it is only question of time when you will discover that you can totally customimize your party, make some members join / leave etc. etc.
welcome to the next level ;)
yes, I have played mods with custom features, but I've never seen one where they made brand new traits and character classes.
I played mods with custom weapons, and mods where some monsters that give 0 experience points



what i'm triyng to do is have predefined charactes in my mod that fit classic horror movie tropes.
champion 1 will be "the jock"
champion 2 will be "the cheerleader"
champion 3 is "the stoner"
champion 4 is "the nerd"

so I want to define custom classes
for
Jock
Cheerleader
Stoner
Nerd
.

and the "slasher villain" will be played by the skeleton commander, a boss that appears several times through my mod. but I want to alter him so that he no longer drops the long swords on death.

the asset pack has a monster definition .lua file for skeleton commander and it looks liek this

Code: Select all

defineObject{
	name = "skeleton_commander",
	baseObject = "base_monster",
	components = {
		{
			class = "Model",
			model = "assets/models/monsters/skeleton_knight_commander.fbx",
			storeSourceData = true, -- must be enabled for mesh particles to work
		},
		{
			class = "Animation",
			animations = {
				idle = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_idle.fbx",
				moveForward = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_walk.fbx",
				turnLeft = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_left.fbx",
				turnRight = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_right.fbx",
				attack = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_attack.fbx",
				attack2 = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_attack2.fbx",
				moveAttack = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_move_attack.fbx",
				rangedAttack = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_ranged_attack.fbx",
				summonUndead = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_summon_undead.fbx",
				turnAttackLeft = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_attack_left.fbx",
				turnAttackRight = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_attack_right.fbx",
				turnAroundAttack = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_around_attack.fbx",
				getHitFrontLeft = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_get_hit_front_left.fbx",
				getHitFrontRight = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_get_hit_front_right.fbx",
				getHitBack = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_get_hit_back.fbx",
				getHitLeft = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_get_hit_left.fbx",
				getHitRight = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_get_hit_right.fbx",
				fall = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_get_hit_front_left.fbx",
			},
			currentLevelOnly = true,
			onAnimationEvent = function(self, event)
				if event == "summon_undead_begin" then
					self.go.handLeftParticle:restart()
					self.go.handRightParticle:restart()
					self.go.spellLight:fadeIn(2.7)
				elseif event == "summon_undead_end" then
					self.go.spellLight:fadeOut(0.1)
				end
			end,
		},
		{
			class = "Monster",
			meshName = "skeleton_knight_commander_mesh",
			footstepSound = "skeleton_footstep",
			hitSound = "skeleton_hit",
			dieSound = "skeleton_die",
			hitEffect = "hit_dust",
			capsuleHeight = 0.7,
			capsuleRadius = 0.25,
			collisionRadius = 0.6,			
			health = 900,
			protection = 15,
			evasion = 0,
			immunities = { "sleep", "blinded", "frozen" },
			resistances = {
				["poison"] = "immune",
				["shock"] = "weak",
			},
			traits = { "undead" },
			exp = 750,
			lootDrop = { 100, "long_sword", 100, "long_sword" },
		},
		{
			class = "SkeletonCommanderBrain",
			name = "brain",
			sight = 6,
			allAroundSight = true,
			morale = 100,	-- fearless
		},
		{
			class = "MonsterMove",
			name = "move",
			sound = "skeleton_commander_walk",
			cooldown = 2,
		},
		{
			class = "MonsterTurn",
			name = "turn",
			sound = "skeleton_commander_walk",
		},
		{
			class = "MonsterAttack",
			name = "basicAttack",
			attackPower = 20,
			accuracy = 30,
			pierce = 20,
			woundChance = 25,
			cooldown = 4,
			sound = "skeleton_commander_attack",
			onBeginAction = function(self)
				-- randomize animation
				if math.random() < 0.5 then
					self:setAnimation("attack")
				else
					self:setAnimation("attack2")
				end
			end,
		},		
		{
			class = "MonsterAttack",
			name = "turnAttack",
			attackPower = 30,
			accuracy = 30,
			pierce = 20,
			woundChance = 25,
			cooldown = 0,
			sound = "skeleton_commander_turn_attack",
			turnToAttackDirection = true,
		},
		{
			class = "MonsterAttack",
			name = "rangedAttack",
			attackPower = 30,
			cooldown = 15,
			animation = "rangedAttack",
			sound = "skeleton_commander_ice_shards",
			onAttack = function(self)
				-- 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.iceshards:setRange(5)
				spell.tiledamager:setAttackPower(32)
			end,
		},
		{
			class = "MonsterMoveAttack",
			name = "moveAttack",
			attackPower = 30,
			accuracy = 50,
			pierce = 20,
			woundChance = 25,
			cooldown = 6,
			animation = "moveAttack",
			sound = "skeleton_commander_move_attack",
		},
		{
			class = "MonsterAttack",
			name = "summonUndead",
			cooldown = 80,
			repeatChance = 0,
			animation = "summonUndead",
			sound = "skeleton_commander_summon_spell",
			onAttack = function(self)
				for tries=1,20 do
					-- choose summon location
					local dx,dy = getForward(self.go.facing)
					local x = self.go.x + math.random(-1,1)
					local y = self.go.y + math.random(-1,1)
					
					-- is valid spawn point?
					local map = self.go.map
					local elevation = map:getElevation(x, y)
					if not map:isBlocked(x, y, elevation) then
						spawn("undead", self.go.level, x, y, self.go.facing, elevation)
						return
					end
				end
			end,
		},
		{
			class = "Particle",
			name = "handLeftParticle",
			parentNode = "hand_left",
			particleSystem = "skeleton_commander_spell",
			offset = vec(0.1, 0, 0),
			enabled = false,
		},
		{
			class = "Particle",
			name = "handRightParticle",
			parentNode = "hand_right",
			particleSystem = "skeleton_commander_spell",
			offset = vec(0.1, 0, 0),
			enabled = false,
		},
		{
			class = "Light",
			name = "spellLight",
			parentNode = "spine1",
			offset = vec(0.4, 0, 0.25),
			--debugDraw = true,
			color = vec(0.45,0.6,1),
			brightness = 8,
			range = 4,
			fadeOut = 0,
			fillLight = true,
		},
	},
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_attack.fbx",
	event = "attack",
	frame = 12,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_attack.fbx",
	event = "attack",
	frame = 23,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_attack2.fbx",
	event = "attack",
	frame = 8,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_attack2.fbx",
	event = "attack",
	frame = 18,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_attack_left.fbx",
	event = "attack",
	frame = 12,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_attack_right.fbx",
	event = "attack",
	frame = 12,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_around_attack.fbx",
	event = "attack",
	frame = 12,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_ranged_attack.fbx",
	event = "attack",
	frame = 12,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_move_attack.fbx",
	event = "move_forward",
	frame = 12,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_move_attack.fbx",
	event = "attack",
	frame = 19,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_move_attack.fbx",
	event = "attack",
	frame = 26,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_summon_undead.fbx",
	event = "summon_undead_begin",
	frame = 80,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_summon_undead.fbx",
	event = "summon_undead_end",
	frame = 155,
}

for i=0,2 do
	defineAnimationEvent{
		animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_summon_undead.fbx",
		event = "attack",
		frame = 155 + i * 10,
	}
end

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_walk.fbx",
	event = "footstep",
	frame = 13,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_walk.fbx",
	event = "footstep",
	frame = 26,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_walk.fbx",
	event = "footstep",
	frame = 42,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_walk.fbx",
	event = "footstep",
	frame = 53,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_left.fbx",
	event = "footstep",
	frame = 12,
}

defineAnimationEvent{
	animation = "assets/animations/monsters/skeleton_knight_commander/skeleton_knight_commander_turn_right.fbx",
	event = "footstep",
	frame = 12,
}

defineParticleSystem{
	name = "skeleton_commander_spell",
	emitters = {
		-- fog
		{
			spawnBurst = true,
			emissionTime = 0,
			maxParticles = 3,
			boxMin = {0.0, 0.0, 0.0},
			boxMax = {0.0, 0.0, 0.0},
			sprayAngle = {0,360},
			velocity = {0.0,0.0},
			objectSpace = true,
			texture = "assets/textures/particles/fog.tga",
			lifetime = {3,3},
			color0 = {0.14, 0.352941, 0.803922},
			opacity = 0.6,
			fadeIn = 3,
			fadeOut = 0.5,
			size = {0.2, 0.6},
			gravity = {0,0,0},
			airResistance = 0.1,
			rotationSpeed = 3,
			blendMode = "Additive",
			depthBias = -0.005,
		},
		-- stars
		{
			emissionRate = 25,
			emissionTime = 2.7,
			maxParticles = 1000,
			boxMin = {-0.1, -0.1, -0.1},
			boxMax = { 0.1,  0.1,  0.1},
			sprayAngle = {0,360},
			velocity = {0.5,2},
			objectSpace = false,
			texture = "assets/textures/particles/teleporter.tga",
			lifetime = {0.1,0.15},
			color0 = {2.0,2.0,3.0},
			opacity = 1,
			fadeIn = 0.1,
			fadeOut = 0.1,
			size = {0.05, 0.5},
			gravity = {0,0,0},
			airResistance = 5,
			rotationSpeed = 2,
			blendMode = "Additive",
		},
		-- glow
		{
			spawnBurst = true,
			emissionRate = 1,
			emissionTime = 0,
			maxParticles = 1,
			boxMin = {0,0,0.0},
			boxMax = {0,0,0.0},
			sprayAngle = {0,30},
			velocity = {0,0},
			texture = "assets/textures/particles/glow.tga",
			lifetime = {2.8, 2.8},
			colorAnimation = false,
			color0 = {0.35,0.45,0.75},
			opacity = 1,
			fadeIn = 3.5,
			fadeOut = 0.1,
			size = {0.5, 0.5},
			gravity = {0,0,0},
			airResistance = 1,
			rotationSpeed = 2,
			blendMode = "Additive",
			objectSpace = true,
			depthBias = -0.005,
		},
		-- glow
		{
			spawnBurst = true,
			emissionRate = 1,
			emissionTime = 0,
			maxParticles = 1,
			boxMin = {0,0,0.0},
			boxMax = {0,0,0.0},
			sprayAngle = {0,30},
			velocity = {0,0},
			texture = "assets/textures/particles/glow.tga",
			lifetime = {2.8, 2.8},
			colorAnimation = false,
			color0 = {0.35,0.45,0.75},
			opacity = 0.3,
			fadeIn = 3.5,
			fadeOut = 0.1,
			size = {1.5, 1.5},
			gravity = {0,0,0},
			airResistance = 1,
			rotationSpeed = 2,
			blendMode = "Additive",
			objectSpace = true,
		}
	}
}

defineSound{
	name = "skeleton_commander_walk",
	filename = {
		"assets/samples/monsters/skeleton_walk_01.wav",
		"assets/samples/monsters/skeleton_walk_01.wav",
		"assets/samples/monsters/skeleton_walk_01.wav",
		"assets/samples/monsters/skeleton_commander_walk_01.wav",
		"assets/samples/monsters/skeleton_commander_walk_02.wav",
	},
	loop = false,
	volume = 1,
	minDistance = 1,
	maxDistance = 10,
}

defineSound{
	name = "skeleton_commander_attack",
	filename = "assets/samples/monsters/skeleton_commander_attack_01.wav",
	loop = false,
	volume = 1,
	minDistance = 1,
	maxDistance = 10,
}

defineSound{
	name = "skeleton_commander_ice_shards",
	filename = "assets/samples/monsters/skeleton_commander_attack_01.wav",
	loop = false,
	volume = 1,
	minDistance = 1,
	maxDistance = 10,
}

defineSound{
	name = "skeleton_commander_turn_attack",
	filename = "assets/samples/monsters/skeleton_commander_turn_attack_01.wav",
	loop = false,
	volume = 1,
	minDistance = 1,
	maxDistance = 10,
}

defineSound{
	name = "skeleton_commander_move_attack",
	filename = "assets/samples/monsters/skeleton_commander_move_attack_01.wav",
	loop = false,
	volume = 1,
	minDistance = 3,
	maxDistance = 10,
}

defineSound{
	name = "skeleton_commander_summon_spell",
	filename = "assets/samples/monsters/skeleton_commander_summon_spell_01.wav",
	loop = false,
	volume = 1,
	minDistance = 5,
	maxDistance = 13,
}

do I have to paste that ENTIRE thing into my custom monsters .lua? just to change that one line with the loot drops?


and i still have confusion about the classes, where is the line that defines what custom graphic to use for the class traits?
User avatar
Drakkan
Posts: 1318
Joined: Mon Dec 31, 2012 12:25 am

Re: custom character classes

Post by Drakkan »

hmm... yes maybe just my mod is using custom characters and some new skills etc. :/

as for the copying objects, check this thread it could save you lots of time , you can just clone anything, no need to recopying all

viewtopic.php?f=22&t=8450
Breath from the unpromising waters.
Eye of the Atlantis
User avatar
FeMaiden
Posts: 290
Joined: Wed Jan 16, 2013 8:16 am

Re: custom character classes

Post by FeMaiden »

Drakkan wrote:hmm... yes maybe just my mod is using custom characters and some new skills etc. :/

as for the copying objects, check this thread it could save you lots of time , you can just clone anything, no need to recopying all

viewtopic.php?f=22&t=8450

which mod is yours? out of curiosity...
User avatar
Drakkan
Posts: 1318
Joined: Mon Dec 31, 2012 12:25 am

Re: custom character classes

Post by Drakkan »

I have it in my siganture.
viewtopic.php?f=22&t=7900&hilit=atlantis

and also calling it "my" in this stage would be unfair, this mod exists only because of all the people around helped me with LOTS of stuff.
Breath from the unpromising waters.
Eye of the Atlantis
User avatar
THOM
Posts: 1281
Joined: Wed Nov 20, 2013 11:35 pm
Location: Germany - Cologne
Contact:

Re: custom character classes

Post by THOM »

regarding monster altering:

with the standard initialisation of costum maps all files from the original game will be loaded into the game.

if you use this installation you can copy over monster definitions and load them with your mod_assets scripts. You should rename the monster (i.e. from "turtle" to "turtle_new" or something like that) otherwise you overwrite the original monster (or the original overwrites your one - regarding of the order of definition-loading...)
And: yes, you have to copy over the whole definition - even if you just want to change just one line... (at least I would suggest to do so)

the other way is to change the way of definition-file loading. look into the init.lua-file of your mod_assets folder. there is a path written to a a file in the assets folder (not mod_assets!) which loads all scripts from the original game.

in the assets pack you can find all this files, copy them into your mod_asstes folder an alter everything you want. this way you alter the original definitions, not a copy of them.

this is the file you have to copy over and define in the init file:

Code: Select all

import "mod_assets/scripts/standard_assets.lua"
this is what it contains:

Code: Select all

import "assets/scripts/objects/base.lua"

import "assets/scripts/tiles.lua"
import "assets/scripts/spells.lua"
import "assets/scripts/recipes.lua"
import "assets/scripts/sounds.lua"
import "assets/scripts/ambient_tracks.lua"
import "assets/scripts/races.lua"
import "assets/scripts/char_classes.lua"
import "assets/scripts/skills.lua"
import "assets/scripts/traits.lua"

-- import objects
import "assets/scripts/objects/generic.lua"
import "assets/scripts/objects/dungeon.lua"
import "assets/scripts/objects/tomb.lua"
import "assets/scripts/objects/mine.lua"
import "assets/scripts/objects/forest.lua"
import "assets/scripts/objects/beach.lua"
import "assets/scripts/objects/castle.lua"
import "assets/scripts/objects/swamp.lua"
import "assets/scripts/objects/cemetery.lua"
import "assets/scripts/objects/breakable.lua"
import "assets/scripts/objects/portal.lua"
import "assets/scripts/objects/beacon_tower.lua"
import "assets/scripts/objects/pushable_block.lua"
import "assets/scripts/objects/water.lua"
import "assets/scripts/objects/sky.lua"
import "assets/scripts/objects/magic_bridge.lua"
import "assets/scripts/objects/stone_philosophers.lua"

-- import items
import "assets/scripts/items/accessories.lua"
import "assets/scripts/items/armors.lua"
import "assets/scripts/items/clothes.lua"
import "assets/scripts/items/containers.lua"
import "assets/scripts/items/food.lua"
import "assets/scripts/items/herbs.lua"
import "assets/scripts/items/keys.lua"
import "assets/scripts/items/swords.lua"
import "assets/scripts/items/axes.lua"
import "assets/scripts/items/maces.lua"
import "assets/scripts/items/daggers.lua"
import "assets/scripts/items/misc_weapons.lua"
import "assets/scripts/items/throwing_weapons.lua"
import "assets/scripts/items/missile_weapons.lua"
import "assets/scripts/items/firearms.lua"
import "assets/scripts/items/misc.lua"
import "assets/scripts/items/potions.lua"
import "assets/scripts/items/scrolls.lua"
import "assets/scripts/items/shields.lua"
import "assets/scripts/items/staves.lua"
import "assets/scripts/items/tomes.lua"
import "assets/scripts/items/crystal_shards.lua"

-- import monsters
import "assets/scripts/monsters/crowern.lua"
import "assets/scripts/monsters/wyvern.lua"
import "assets/scripts/monsters/herder.lua"
import "assets/scripts/monsters/herder_small.lua"
import "assets/scripts/monsters/herder_big.lua"
import "assets/scripts/monsters/spider.lua"
import "assets/scripts/monsters/skeleton_archer.lua"
import "assets/scripts/monsters/cave_crab.lua"
import "assets/scripts/monsters/shrakk_torr.lua"
import "assets/scripts/monsters/green_slime.lua"
import "assets/scripts/monsters/forest_ogre.lua"
import "assets/scripts/monsters/mummy.lua"
import "assets/scripts/monsters/giant_snake.lua"
import "assets/scripts/monsters/rat_swarm.lua"
import "assets/scripts/monsters/medusa.lua"
import "assets/scripts/monsters/sand_warg.lua"
import "assets/scripts/monsters/fjeld_warg.lua"
import "assets/scripts/monsters/dark_acolyte.lua"
import "assets/scripts/monsters/turtle.lua"
import "assets/scripts/monsters/zarchton.lua"
import "assets/scripts/monsters/eyctopus.lua"
import "assets/scripts/monsters/mosquito_swarm.lua"
import "assets/scripts/monsters/skeleton_knight_trooper.lua"
import "assets/scripts/monsters/skeleton_knight_commander.lua"
import "assets/scripts/monsters/undead.lua"
import "assets/scripts/monsters/twigroot.lua"
import "assets/scripts/monsters/air_elemental.lua"
import "assets/scripts/monsters/fire_elemental.lua"
import "assets/scripts/monsters/magma_golem.lua"
import "assets/scripts/monsters/swamp_toad.lua"
import "assets/scripts/monsters/ice_guardian.lua"
import "assets/scripts/monsters/uggardian.lua"
import "assets/scripts/monsters/trickster.lua"
import "assets/scripts/monsters/wizard.lua"
import "assets/scripts/monsters/summon_stone.lua"
import "assets/scripts/monsters/viper_root.lua"
import "assets/scripts/monsters/turtle_diving.lua"
import "assets/scripts/monsters/zarchton_diving.lua"
import "assets/scripts/monsters/mimic.lua"
import "assets/scripts/monsters/ratling.lua"
import "assets/scripts/monsters/ratling_boss.lua"
import "assets/scripts/monsters/xeloroid.lua"
import "assets/scripts/monsters/lindworm.lua"
import "assets/scripts/monsters/spore_mushroom.lua"

-- import spells
import "assets/scripts/spells/fireburst.lua"
import "assets/scripts/spells/shockburst.lua"
import "assets/scripts/spells/frostburst.lua"
import "assets/scripts/spells/poison_cloud.lua"
import "assets/scripts/spells/ice_shards.lua"
import "assets/scripts/spells/fireball.lua"
import "assets/scripts/spells/frostbolt.lua"
import "assets/scripts/spells/poison_bolt.lua"
import "assets/scripts/spells/lightning_bolt.lua"
import "assets/scripts/spells/dark_bolt.lua"
import "assets/scripts/spells/blob.lua"
import "assets/scripts/spells/thorn_wall.lua"
import "assets/scripts/spells/wasp_swarm.lua"
import "assets/scripts/spells/dispel.lua"
import "assets/scripts/spells/runes.lua"
import "assets/scripts/spells/wall_fire.lua"
import "assets/scripts/spells/open_door.lua"
import "assets/scripts/spells/force_field.lua"

-- import materials
import "assets/scripts/materials/generic.lua"
import "assets/scripts/materials/dungeon.lua"
import "assets/scripts/materials/tomb.lua"
import "assets/scripts/materials/mine.lua"
import "assets/scripts/materials/forest.lua"
import "assets/scripts/materials/castle.lua"
import "assets/scripts/materials/beach.lua"
import "assets/scripts/materials/items.lua"
import "assets/scripts/materials/monsters.lua"
import "assets/scripts/materials/swamp.lua"
import "assets/scripts/materials/cemetery.lua"

-- import particle systems
import "assets/scripts/particles/crystal.lua"
import "assets/scripts/particles/cube.lua"
import "assets/scripts/particles/damage_screen.lua"
import "assets/scripts/particles/death.lua"
import "assets/scripts/particles/death_icy.lua"
import "assets/scripts/particles/earthquake_dust.lua"
import "assets/scripts/particles/frost_arrow.lua"
import "assets/scripts/particles/glitter.lua"
import "assets/scripts/particles/hit_wood.lua"
import "assets/scripts/particles/hit_blood.lua"
import "assets/scripts/particles/hit_blood_black.lua"
import "assets/scripts/particles/hit_dust.lua"
import "assets/scripts/particles/hit_flame.lua"
import "assets/scripts/particles/hit_goo.lua"
import "assets/scripts/particles/hit_slime.lua"
import "assets/scripts/particles/hit_firearm.lua"
import "assets/scripts/particles/hit_ice.lua"
import "assets/scripts/particles/party_crush.lua"
import "assets/scripts/particles/prison_ceiling_lamp.lua"
import "assets/scripts/particles/teleporter.lua"
import "assets/scripts/particles/torch.lua"
import "assets/scripts/particles/dungeon_wall_lantern.lua"
import "assets/scripts/particles/tomb_wall_lantern.lua"
import "assets/scripts/particles/portal_effect.lua"
import "assets/scripts/particles/hit_terracotta_jar.lua"
import "assets/scripts/particles/meteor_hammer.lua"
import "assets/scripts/particles/mine_support_lantern.lua"
import "assets/scripts/particles/mine_ceiling_pit_light.lua"
import "assets/scripts/particles/mine_support_ceiling_lantern.lua"
import "assets/scripts/particles/mine_crystal.lua"
import "assets/scripts/particles/forest_falling_leaves.lua"
import "assets/scripts/particles/forest_pit_fog.lua"
import "assets/scripts/particles/forest_fireflies.lua"
import "assets/scripts/particles/forest_lantern.lua"
import "assets/scripts/particles/castle_window_dust.lua"
import "assets/scripts/particles/castle_pillar_candles.lua"
import "assets/scripts/particles/floor_vent_steam.lua"
import "assets/scripts/particles/damage_fire.lua"
import "assets/scripts/particles/damage_shock.lua"
import "assets/scripts/particles/uggardian_flames.lua"
import "assets/scripts/particles/poisoned_monster.lua"
import "assets/scripts/particles/blinded_monster.lua"
import "assets/scripts/particles/stunned_monster.lua"
import "assets/scripts/particles/power_gem.lua"
import "assets/scripts/particles/power_gem_item.lua"
import "assets/scripts/particles/forest_underwater_bubbles.lua"
import "assets/scripts/particles/forest_underwater_plankton.lua"
import "assets/scripts/particles/witch_lantern.lua"
import "assets/scripts/particles/castle_wall_text.lua"
import "assets/scripts/particles/castle_wall_text_long.lua"
import "assets/scripts/particles/castle_button.lua"
import "assets/scripts/particles/beacon_crystal.lua"
import "assets/scripts/particles/beacon_furnace_text_glow.lua"
import "assets/scripts/particles/essence_water.lua"
import "assets/scripts/particles/essence_fire.lua"
import "assets/scripts/particles/essence_earth.lua"
import "assets/scripts/particles/essence_air.lua"
import "assets/scripts/particles/essence_balance.lua"
import "assets/scripts/particles/swamp_fume.lua"
import "assets/scripts/particles/dungeon_fire_pit.lua"
import "assets/scripts/particles/catacomb_alcove_candles_01.lua"
import "assets/scripts/particles/catacomb_alcove_candles_02.lua"
import "assets/scripts/particles/potion_of_vitality.lua"
import "assets/scripts/particles/potion_of_strength.lua"
import "assets/scripts/particles/potion_of_willpower.lua"
import "assets/scripts/particles/potion_of_dexterity.lua"
import "assets/scripts/particles/dummy_light.lua"
import "assets/scripts/particles/ethereal_blade.lua"
import "assets/scripts/particles/etherweed.lua"
import "assets/scripts/particles/castle_ceiling_light.lua"
Last edited by THOM on Sat Oct 31, 2015 3:40 pm, edited 1 time in total.
THOM formaly known as tschrage
_______________________________________________
My MOD (LoG1): Castle Ringfort Thread
My MOD (LoG2): Journey To Justice Thread | Download
User avatar
FeMaiden
Posts: 290
Joined: Wed Jan 16, 2013 8:16 am

Re: custom character classes

Post by FeMaiden »

Drakkan wrote:I have it in my siganture.
viewtopic.php?f=22&t=7900&hilit=atlantis

and also calling it "my" in this stage would be unfair, this mod exists only because of all the people around helped me with LOTS of stuff.
I guess that's true...80% of the code in "my" mod was written by you guys and I just copy pasted it in there lol.

I did learn stuff on my own, but all the advanced things like resetting the party member stats, i never could have written that script at the level i'm at.
User avatar
FeMaiden
Posts: 290
Joined: Wed Jan 16, 2013 8:16 am

Re: custom character classes

Post by FeMaiden »

Drakkan wrote:I have it in my siganture.
viewtopic.php?f=22&t=7900&hilit=atlantis

and also calling it "my" in this stage would be unfair, this mod exists only because of all the people around helped me with LOTS of stuff.
I must say I am very impressed by Eye of The Atlantis. i have never seen a mod with stuff like that in it.
giant leeches?
I was under the impression that we couldn't make brand new monster types in this.
or did you take the snail and use one of the other textures on it?.
at first I thought it was a grammar mistake, I thought shouldn't it be "Eye of Atlantis"? but then i thought, is the name a wordplay on "eye of the beholder"?
I love the text window that appears with customized images and choices of response.
and the wallet system for my money is awesome.

I went through party creation and saw the custom character classes and made a party with portaits and everything to find that you have a predefined partly just like I did in my mod lol.

one thing I should mention. "Paladin" should be spelled with only one "L".
User avatar
AndakRainor
Posts: 674
Joined: Thu Nov 20, 2014 5:18 pm

Re: custom character classes

Post by AndakRainor »

If you want a lot of custom things in your mod but don't have time to work on every aspects, you could use my spells pack :D
http://grimrock.net/forum/viewtopic.php?f=22&t=9579
(shameful self promotion!)
Post Reply