Code: Select all
---
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack.fbx",
	event = "attack",
	frame = 15,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack.fbx",
	event = "attack",
	frame = 20,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack.fbx",
	event = "attack",
	frame = 25,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_left.fbx",
	event = "attack",
	frame = 12,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_left.fbx",
	event = "attack",
	frame = 18,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_left.fbx",
	event = "attack",
	frame = 24,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_right.fbx",
	event = "attack",
	frame = 11,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_right.fbx",
	event = "attack",
	frame = 18,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_right.fbx",
	event = "attack",
	frame = 25,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_back.fbx",
	event = "attack",
	frame = 12,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_back.fbx",
	event = "attack",
	frame = 18,
}
defineAnimationEvent{
	animation = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_back.fbx",
	event = "attack",
	frame = 26,
}
---
defineMaterial{
	name = "drainage_tentacles",
	diffuseMap = "assets/textures/monsters/drain_tentacles_dif.tga",
	specularMap = "assets/textures/monsters/drain_tentacles_spec.tga",
	normalMap = "assets/textures/monsters/drain_tentacles_normal.tga",
	doubleSided = false,
	lighting = true,
	alphaTest = false,
	blendMode = "Opaque",
	textureAddressMode = "Wrap",
	glossiness = 35,
	depthBias = 0,
}
---
	defineSound{
		name = "tentacles_attack",
		filename = "assets/samples/monsters/tentacles_attack_01.wav",
		loop = false,
		volume = 1,
		minDistance = 1,
		maxDistance = 10,
	}
	defineSound{
		name = "tentacles_walk",
		filename = "assets/samples/monsters/tentacles_walk_01.wav",
		loop = false,
		volume = 1,
		minDistance = 1,
		maxDistance = 10,
	}
	defineSound{
		name = "tentacles_rise",
		filename = "assets/samples/monsters/tentacles_rise_01.wav",
		loop = false,
		volume = 1,
		minDistance = 1,
		maxDistance = 10,
	}
	defineSound{
		name = "tentacles_retreat",
		filename = "assets/samples/monsters/tentacles_retreat_01.wav",
		loop = false,
		volume = 1,
		minDistance = 1,
		maxDistance = 10,
	}
	defineSound{
		name = "tentacles_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 = "tentacles_die",
		filename = "assets/samples/monsters/tentacles_die_01.wav",
		loop = false,
		volume = 1,
		minDistance = 1,
		maxDistance = 10,
	}
---
defineObject{
	name = "tentacles",
	baseObject = "base_monster",
	components = {
	 {
		name = "model",
		class = "Model",
		model = "assets/models/monsters/drainage_tentacles.fbx",
		storeSourceData = true,
	 },
	 {
	 class = "Animation",
	 name = "animation",
	 currentLevelOnly = true,
		animations = {
			idle = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_idle.fbx",
			turnLeft = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_turn_left.fbx",
			turnRight = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_turn_right.fbx",
			hide = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_hide.fbx",
			reveal = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_raise.fbx",
			attack = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack.fbx",
			attackBack = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_back.fbx",
			attackLeft = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_left.fbx",
			attackRight = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_attack_right.fbx",
			getHitFrontLeft = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_get_hit_front_left.fbx",
			getHitFrontRight = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_get_hit_front_right.fbx",
			getHitBack = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_get_hit_front_left.fbx",
			getHitLeft = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_get_hit_front_right.fbx",
			getHitRight = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_get_hit_front_left.fbx",
			fall = "assets/animations/monsters/drainage_tentacles/drainage_tentacles_get_hit_front_left.fbx",
		},
	 },
	{
		class = "Monster",
		meshName = "drainage_tentacles_mesh",
		level=1,
		health = 420,
		exp = 320,
		traits = { "animal" },
		immunities = { "assassination", "backstab" },
		hitEffect = "hit_goo",
		capsuleHeight = 1,
		capsuleRadius = 0.1,
		hitSound = "tentacles_hit",
		dieSound = "tentacles_die",
	},
	{
		class = "TentacleBrain",
		name = "brain",
		sight = 2.5,
		allAroundSight = true,
	},
	{
		class = "MonsterMove",
		name = "move",
		sound = "tentacles_walk", 
	},
	{
		class = "MonsterTurn",
		name = "turn",
		animations = { "turnLeft", "turnRight" },
		sound = "tentacles_walk",
	},
	{
		class = "TentacleHide",
		name = "hide"
	},
	{
		class = "MonsterAttack",
		name = "basicAttack",
		sound = "tentacles_attack",
		impactSound = "tentacles_hit",
		accuracy = 15,
		cooldown = 3,
		attackPower = 25,
		animationSpeed = 1, 
		animations = { "attack", "attackBack", "attackLeft", "attackRight" },
		onDealDamage = function(self, champion, damage)
			if math.random() <= 0.2 then
				champion:setConditionValue("paralyzed", 10)
			end
		end,
	},
	},
}


 
 