[Asset] Splitting & spitting slimes of all sizes

Talk about creating Grimrock 1 levels and mods here. Warning: forum contains spoilers!
Post Reply
User avatar
flatline
Posts: 189
Joined: Thu Oct 04, 2012 11:13 am

[Asset] Splitting & spitting slimes of all sizes

Post by flatline » Mon Nov 19, 2012 6:47 am

So, since I get new ideas all the time, I never seem to finish anything, but here goes:

I toyed around resizing slimes and tweaked them to be more varied and dangerous. I always wanted them to split into smaller slimes. Now they do!

Here's a short clip showing them in action


They split into smaller slimes on death, and they all differ in ways of attack and AI. The big one is truly annoying, ranged attack and all. I had to tone it down a bit.

Animation files (put these in mod_assets/animations):
http://speedy.sh/G6pCU/animations.rar



Code for animation_events.lua

Code: Select all

defineAnimationEvent{
	animation = "mod_assets/animations/big_slime/green_slime_attack.fbx",
	event = "attack",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/big_slime/green_slime_attack_back.fbx",
	event = "attack_back",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/big_slime/green_slime_attack_left.fbx",
	event = "attack_left",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/big_slime/green_slime_attack_right.fbx",
	event = "attack_right",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/quart_slime/green_slime_attack.fbx",
	event = "attack",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/quart_slime/green_slime_attack_back.fbx",
	event = "attack_back",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/quart_slime/green_slime_attack_left.fbx",
	event = "attack_left",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/quart_slime/green_slime_attack_right.fbx",
	event = "attack_right",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/half_slime/green_slime_attack.fbx",
	event = "attack",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/half_slime/green_slime_attack_back.fbx",
	event = "attack_back",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/half_slime/green_slime_attack_left.fbx",
	event = "attack_left",
	frame = 9,
}

defineAnimationEvent{
	animation = "mod_assets/animations/half_slime/green_slime_attack_right.fbx",
	event = "attack_right",
	frame = 9,
}
Code for monsters.lua

Code: Select all

defineObject{
	name = "quart_4group",
	class = "MonsterGroup",
	monsterType ="quart_slime",
	count = 4,
}

defineObject{
	name = "quart_2group",
	class = "MonsterGroup",
	monsterType ="quart_slime",
	count = 2,
}

cloneObject{
   name = "quart_slime",
   baseObject = "green_slime",
   movementCoolDown = 2,
   exp = 30,
   health = 70,
   brain = "Melee",
   lightColor = vec(0.0, 0.5, 0.0),
	lightBrightness = 4,
	lightRange = 3,
	attackPower = 1,
	accuracy = 15,
	coolDown = { 1, 2 },
   animations = {
      idle = "mod_assets/animations/quart_slime/green_slime_idle.fbx",
      moveForward = "mod_assets/animations/quart_slime/green_slime_move_forward.fbx",
      moveBackward = "mod_assets/animations/quart_slime/green_slime_move_backward.fbx",
      strafeLeft = "mod_assets/animations/quart_slime/green_slime_strafe_left.fbx",
      strafeRight = "mod_assets/animations/quart_slime/green_slime_strafe_right.fbx",
      turnLeft = "mod_assets/animations/quart_slime/green_slime_turn_left.fbx",
      turnRight = "mod_assets/animations/quart_slime/green_slime_turn_right.fbx",
      attack = "mod_assets/animations/quart_slime/green_slime_attack.fbx",
      attackBack = "mod_assets/animations/quart_slime/green_slime_attack_back.fbx",
      attackLeft = "mod_assets/animations/quart_slime/green_slime_attack_left.fbx",
      attackRight = "mod_assets/animations/quart_slime/green_slime_attack_right.fbx",
      getHitFrontLeft = "mod_assets/animations/quart_slime/green_slime_get_hit_front_left.fbx",
      getHitFrontRight = "mod_assets/animations/quart_slime/green_slime_get_hit_front_right.fbx",
      getHitBack = "mod_assets/animations/quart_slime/green_slime_get_hit_back.fbx",
      getHitLeft = "mod_assets/animations/quart_slime/green_slime_get_hit_left.fbx",
      getHitRight = "mod_assets/animations/quart_slime/green_slime_get_hit_right.fbx",
      fall = "mod_assets/animations/quart_slime/green_slime_get_hit_front_left.fbx",
   },
}


cloneObject{
   name = "half_slime",
   baseObject = "green_slime",
   movementCoolDown = 3,
   exp = 90,
	health = 200,
		lightColor = vec(0.0, 1.0, 0.0),
	lightBrightness = 5,
	lightRange = 3,
	attackPower = 10,
	accuracy = 15,	
	  animations = {
      idle = "mod_assets/animations/half_slime/green_slime_idle.fbx",
      moveForward = "mod_assets/animations/half_slime/green_slime_move_forward.fbx",
      moveBackward = "mod_assets/animations/half_slime/green_slime_move_backward.fbx",
      strafeLeft = "mod_assets/animations/half_slime/green_slime_strafe_left.fbx",
      strafeRight = "mod_assets/animations/half_slime/green_slime_strafe_right.fbx",
      turnLeft = "mod_assets/animations/half_slime/green_slime_turn_left.fbx",
      turnRight = "mod_assets/animations/half_slime/green_slime_turn_right.fbx",
      attack = "mod_assets/animations/half_slime/green_slime_attack.fbx",
      attackBack = "mod_assets/animations/half_slime/green_slime_attack_back.fbx",
      attackLeft = "mod_assets/animations/half_slime/green_slime_attack_left.fbx",
      attackRight = "mod_assets/animations/half_slime/green_slime_attack_right.fbx",
      getHitFrontLeft = "mod_assets/animations/half_slime/green_slime_get_hit_front_left.fbx",
      getHitFrontRight = "mod_assets/animations/half_slime/green_slime_get_hit_front_right.fbx",
      getHitBack = "mod_assets/animations/half_slime/green_slime_get_hit_back.fbx",
      getHitLeft = "mod_assets/animations/half_slime/green_slime_get_hit_left.fbx",
      getHitRight = "mod_assets/animations/half_slime/green_slime_get_hit_right.fbx",
      fall = "mod_assets/animations/half_slime/green_slime_get_hit_front_left.fbx",
	},
		onDie = function(self)
		local splitseed = math.random(3)
		if splitseed == 3 then
		spawn("quart_4group", self.level, self.x, self.y, self.facing)
		elseif splitseed == 2 then
		spawn("quart_2group", self.level, self.x, self.y, self.facing)
		else 
		spawn("quart_slime", self.level, self.x, self.y, self.facing)
		end
		end,
}

cloneObject{
   name = "normal_slime",
   baseObject = "green_slime",
	onDie = function(self)
	spawn("half_slime", self.level, self.x, self.y, self.facing)
	end,
}

cloneObject{
   name = "big_slime",
   baseObject = "green_slime",
   movementCoolDown = 5,
	moveSound = "slime_walk",
	attackSound = "slime_attack",
	hitSound = "slime_hit",
	dieSound = "slime_die",
	hitEffect = "hit_slime",
	capsuleHeight = 0.5,
	capsuleRadius = 0.9,
	collisionRadius = 0.9,
	health = 800,
	immunities = { "assassination", "backstab" },
	sight = 6,
	allAroundSight = true,
	attackPower = 35,
	accuracy = 30,
	coolDown = { 0.5, 4 },
	evasion = -40,
	noRecoilInterval = { 0.1, 0.5 },
	exp = 400,
	lightName = "light",
	lightColor = vec(0.0, 4.0, 0.0),
	lightBrightness = 10,
	lightRange = 6,
	healthIncrement = 50,
	attackPowerIncrement = 5,
	brain = "SkeletonArcher",
	onAttack = function(self)
	local dx,dy = getForward(self.facing)
      local x,y = self.x + dx, self.y + dy
      if self.facing == 0 or self.facing == 2 then
                shootProjectile("green_gem", self.level, x, y, self.facing, 12, 8, 3, 0, 0, 0, math.random(15,25), nil, true)
      else
	  shootProjectile("green_gem", self.level, x, y, self.facing, 12, 8, 3, 0, 0, 0, math.random(15,25), nil, true)
       end
	end,
	onDie = function(self)
	spawn("normal_slime", self.level, self.x, self.y, self.facing)
	end,
   animations = {
      idle = "mod_assets/animations/big_slime/green_slime_idle.fbx",
      moveForward = "mod_assets/animations/big_slime/green_slime_move_forward.fbx",
      moveBackward = "mod_assets/animations/big_slime/green_slime_move_backward.fbx",
      strafeLeft = "mod_assets/animations/big_slime/green_slime_strafe_left.fbx",
      strafeRight = "mod_assets/animations/big_slime/green_slime_strafe_right.fbx",
      turnLeft = "mod_assets/animations/big_slime/green_slime_turn_left.fbx",
      turnRight = "mod_assets/animations/big_slime/green_slime_turn_right.fbx",
	  attack = "mod_assets/animations/big_slime/green_slime_attack.fbx",
	  rangedAttack = "mod_assets/animations/big_slime/green_slime_attack.fbx",
      attackBack = "mod_assets/animations/big_slime/green_slime_attack_back.fbx",
      attackLeft = "mod_assets/animations/big_slime/green_slime_attack_left.fbx",
      attackRight = "mod_assets/animations/big_slime/green_slime_attack_right.fbx",
      getHitFrontLeft = "mod_assets/animations/big_slime/green_slime_get_hit_front_left.fbx",
      getHitFrontRight = "mod_assets/animations/big_slime/green_slime_get_hit_front_right.fbx",
      getHitBack = "mod_assets/animations/big_slime/green_slime_get_hit_back.fbx",
      getHitLeft = "mod_assets/animations/big_slime/green_slime_get_hit_left.fbx",
      getHitRight = "mod_assets/animations/big_slime/green_slime_get_hit_right.fbx",
      fall = "mod_assets/animations/big_slime/green_slime_get_hit_front_left.fbx",
	  },
}
Coming up:
Letting the big slime throw small slimes at the party. Try attacking him while he throws tiny slimes at you. First, sleep.

User avatar
crisman
Posts: 305
Joined: Sat Sep 22, 2012 9:23 pm
Location: Italy

Re: [Asset] Splitting & spitting slimes of all sizes

Post by crisman » Mon Nov 19, 2012 9:50 am

Wow! That's a really cool idea!! I like it a lot!! :D
Thanks for sharing! ;)

EDIT: Ehm... I'm trying this right now, and the big slime is giving me some troubles.
Randomly, when the big slime is in the map, the game crashes, with no errors, and for some strange reason steam crashes too :shock:

Also, I think the big should be shrinked a little bit, right now it clips inside the walls, especially the secret doors ;)

EDIT2: Tried on a clean dungeon and it's working fine :)
So there must be some conflicts in my dungeon! :S

User avatar
HaunterV
Posts: 676
Joined: Mon Apr 16, 2012 9:54 pm
Location: Barrie, Ontario, Canada

Re: [Asset] Splitting & spitting slimes of all sizes

Post by HaunterV » Mon Nov 19, 2012 3:45 pm

put the dragonwarrior slime smile on them
Grimrock Community 'FrankenDungeon 2012. Submit your entry now!: http://tinyurl.com/cnupr7h
SUBMIT YOUR ASSETS! Community Asset Pack (C.A.P.): http://tinyurl.com/bqvykrp
Behold! The HeroQuest Revival!: http://tinyurl.com/cu52ksc

Batty
Posts: 509
Joined: Sun Apr 15, 2012 7:04 pm

Re: [Asset] Splitting & spitting slimes of all sizes

Post by Batty » Mon Nov 19, 2012 5:07 pm

The slime dungeon elevated to a new level of annoyance & frustration. :lol:

Just watching the vid made me punch my keyboard. Thanks for this, really like it.

User avatar
LordYig
Posts: 175
Joined: Wed Jul 04, 2012 5:45 pm

Re: [Asset] Splitting & spitting slimes of all sizes

Post by LordYig » Mon Nov 19, 2012 9:27 pm

Nice idea ! I like it.

You also have some strange effect in the video !
Is that snow ? And what about the foggy pit with lightning-plame_like effect ?

User avatar
flatline
Posts: 189
Joined: Thu Oct 04, 2012 11:13 am

Re: [Asset] Splitting & spitting slimes of all sizes

Post by flatline » Tue Nov 20, 2012 1:13 am

LordYig wrote:Nice idea ! I like it.

You also have some strange effect in the video !
Is that snow ? And what about the foggy pit with lightning-plame_like effect ?
Yeah, it's snow ( or rain, depending on settings) and my half-arsed attempt at water. Part of some other things with open-air I was testing, but now I'm waiting for a certain outdoor dungeon to be released before I continue on that.

User avatar
melierax
Posts: 29
Joined: Sat Oct 27, 2012 2:08 am
Location: Quebec, Canada

Re: [Asset] Splitting & spitting slimes of all sizes

Post by melierax » Mon Mar 18, 2013 3:10 am

Hello flatline :D
Can you give the file on your site animations.rar download.
There are more and I'd love to have
Thank you very much :D

Sorry for english goggle translation :?

User avatar
Drakkan
Posts: 1317
Joined: Mon Dec 31, 2012 12:25 am

Re: [Asset] Splitting & spitting slimes of all sizes

Post by Drakkan » Mon Mar 18, 2013 9:19 am

I like that "water" effect in your video, hope you will share as well in time :)
Breath from the unpromising waters.
Eye of the Atlantis

lexdr
Posts: 108
Joined: Thu Dec 26, 2013 3:29 pm
Location: France

Re: [Asset] Splitting & spitting slimes of all sizes

Post by lexdr » Sat Mar 15, 2014 3:09 pm

Hi flatline, this is a very great idea!
However, the dl link for animations is broken. Could you upload it again please?
Thx, Lex

Post Reply