Initial commit

This commit is contained in:
Stillkill committed 2026-03-08 15:37:55 -05:00
commit bd6318027f
4937 files changed
+194287

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
[
{
"id": "menu",
"loop": "",
"effects": []
},
{
"id": "cave",
"loop": "ambient/caveambience",
"effects": [
"/path/to/effect1.sfx",
"/path/to/effect2.sfx",
"/path/to/effect3.sfx"
]
},
{
"id": "forest",
"loop": "ambient/defaultambience",
"effects": [
"/path/to/effect1.sfx",
"/path/to/effect2.sfx"
]
}
]
+62
View File
@@ -0,0 +1,62 @@
{
"start": {
"fogColor": [0.1, 0.05, 0.0, 0.5],
"fogNear": 5.0,
"fogFar": 25.0,
"light": 0.0
},
"checkpoint": {
"fogColor": [0.2, 0.2, 0.5, 0.3],
"fogNear": 5.0,
"fogFar": 35.0,
"light": 0.9
},
"end": {
"fogColor": [0.5, 0.5, 0.5, 0.3],
"fogNear": 5.0,
"fogFar": 35.0,
"light": 0.3
},
"forest": {
"fogColor": [0.5, 0.5, 0.0, 0.2],
"fogNear": 5.0,
"fogFar": 35.0,
"light": 0.5
},
"cave_red": {
"fogColor": [0.6, 0.2, 0.1, 0.2],
"fogNear": 3.0,
"fogFar": 40.0,
"light": 0.0
},
"cave_blue": {
"fogColor": [0.0, 0.1, 0.4, 0.5],
"fogNear": 4.0,
"fogFar": 30.0,
"light": 0.4
},
"cave_purple": {
"fogColor": [0.25, 0.0, 0.3, 0.5],
"fogNear": 4.0,
"fogFar": 30.0,
"light": 0.0
},
"cave_green": {
"fogColor": [0.0, 0.3, 0.1, 0.4],
"fogNear": 5.0,
"fogFar": 35.0,
"light": 0.0
},
"cave_dark": {
"fogColor": [0.0, 0.0, 0.1, 0.05],
"fogNear": 5.0,
"fogFar": 45.0,
"light": 0.0
},
"cave_boss": {
"fogColor": [0.8, 0.2, 0.0, 0.4],
"fogNear": 2.0,
"fogFar": 30.0,
"light": 0.0
}
}
+60
View File
@@ -0,0 +1,60 @@
{
"weapons": {
"sword": {
"speed": 1,
"delay": 0,
"damage": 13
},
"bow": {
"speed": 1,
"delay": 5,
//Todo: damage for bow is not yet implemented or used
"damage": 10
}
},
"player": {
"speed": 6.1,
"autoAimDistance": 25,
"autoAimAngleDiff": 15,
"health": {
"max": 20,
"regenDelaySeconds": 3,
"regenInitialFrequency": 100
},
"attacks": {
"swing1": {
"animation": "swing1.anim",
"damageMultiplier": 1.0,
"maxAngle": 25,
"backDistance": 1,
"maxDistance": 3.3,
"knockback": 1.6,
"stunTime": 1,
"chargeDistance": 8,
"cooldown": 7
},
"swing2": {
"animation": "swing2.anim",
"damageMultiplier": 1.0,
"maxAngle": 25,
"backDistance": 1,
"maxDistance": 3.3,
"knockback": 1.6,
"stunTime": 1,
"chargeDistance": 8,
"cooldown": 7
},
"lunge": {
"animation": "lunge.anim",
"damageMultiplier": 1.0,
"maxAngle": 10,
"backDistance": 5,
"maxDistance": 4.2,
"knockback": 2,
"stunTime": 4,
"chargeDistance": 8,
"cooldown": 10
}
}
}
}
+644
View File
@@ -0,0 +1,644 @@
{
"effects": {
"MonsterHit": {
"lifetime": 0.1,
"keyframes": {
"0": [
{
"emitterName": "impactEmitter"
}
]
}
},
"PlayerFootstep": {
"lifetime": 0.05,
"keyframes": {
"0": [
{
"emitterName": "FootDust"
}
]
}
},
"SplashPotionBreak": {
"lifetime": 0.4,
"keyframes": {
"30": [
{
"particleName": "potionAreaParticle",
"startSize": 1.5,
"lifetime": 0.3
},
{
"emitterName": "brokenGlassEmitter"
}
],
"33": [
{
"emitterName": "dustPuff"
}
]
}
},
"PlayerLevelUp": {
"lifetime": 0.5,
"keyframes": {
"0": [
{
"particleName": "levelUpTextParticle"
}
],
"1": [
{
"soundName": "level.start"
}
],
"50": [
{
"particleName": "levelUpTextParticle"
}
],
"51": [
{
"soundName": "random.levelup"
}
],
"99": [
{
"particleName": "levelUpTextParticle"
}
],
"100": [
{
"emitterName": "soulFireBlastSparksEmitter"
}
]
}
},
"PlayerHeal": {
"lifetime": 1.1,
"keyframes": {
"0": [
{
"emitterName": "HealPlayer"
}
]
}
},
"Checkpoint": {
"lifetime": 0.2,
"keyframes": {
"0": [
{
"soundName": "adventure.checkpoint"
}
],
"100": [
{
"particleName": "checkpointTextParticle"
}
]
}
},
"EmitterTest": {
"lifetime": 1,
"keyframes": {
"50": [
{
"emitterName": "discEmitter"
},
{
"emitterName": "coneEmitter"
}
],
"100": [
{
"emitterName": "discEmitter",
"positionalVelocity": [0, 0.1, 0],
"spawnRate": 0,
"burst": 30
}
]
}
},
"Slowness": {
"lifetime": 1,
"keyframes": {
"0": [
{
"soundName": "mob.spider.net"
},
{
"particleName": "webParticle",
"facingRotation": [0, 0, 30],
"startPosition": [0.5, 0.5, 0]
},
{
"particleName": "webParticle",
"facingRotation": [30, 90, 0],
"startPosition": [0, 0.5, -0.5]
},
{
"particleName": "webParticle",
"facingRotation": [0, 180, 30],
"startPosition": [-0.5, 0.5, 0]
},
{
"particleName": "webParticle",
"facingRotation": [-30, 270, 0],
"startPosition": [0, 0.5, 0.5]
}
]
}
}
},
"emitters": {
"brokenGlassEmitter": {
"type": "cone",
"particleName": "brokenglass",
"lifetime": 0.1,
"spawnRate": 5,
"burst": 10,
"startPosition": [0, 0, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 1, 0],
"size": 180
},
"impactEmitter": {
"type": "cone",
"particleName": "impactParticle",
"lifetime": 0.05,
"spawnRate": 0,
"burst": 5,
"startPosition": [0, 2, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0.35, 0],
"size": 180
},
"soulFireRainEmitter": {
"type": "disc",
"particleName": "soulFire",
"lifetime": 2.5,
"spawnRate": 40,
"burst": 0,
"startPosition": [0, 0, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0.05, 0],
"size": 0.7
},
"soulFireBlastEmitter": {
"type": "disc",
"particleName": "soulFireBlast",
"lifetime": 1,
"spawnRate": 10,
"burst": 0,
"startPosition": [0, 0, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"size": 1
},
"soulFireBlastClimaxEmitter": {
"type": "box",
"particleName": "soulFireBlastClimax",
"lifetime": 0.3,
"spawnRate": 30,
"burst": 5,
"startPosition": [0, 1.7, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"size": 1.5
},
"soulFireBlastSparksEmitter": {
"type": "sphere",
"particleName": "glitter",
"lifetime": 0.8,
"spawnRate": 100,
"burst": 2,
"startPosition": [0, -0.5, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"size": 0.8,
"fadeTime": 0.8
},
"HealPlayer": {
"type": "sphere",
"particleName": "healglitter",
"lifetime": 0.8,
"spawnRate": 150,
"burst": 2,
"startPosition": [0, 1, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"size": 0.6,
"fadeTime": 0.8
},
"FootDust": {
"type": "disc",
"particleName": "dust",
"lifetime": 0.05,
"spawnRate": 0,
"burst": 40,
"startPosition": [0, 2.2, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0.02, 0],
"size": 0.4,
"fadeTime": 0.8
},
"dustPuff": {
"type": "cone",
"particleName": "dustBig",
"lifetime": 0.05,
"spawnRate": 0,
"burst": 400,
"startPosition": [0, 0.5, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0.6, 0],
"size": 90,
"fadeTime": 0.4
},
"coneEmitter": {
"type": "cone",
"particleName": "smokeSpin",
"lifetime": 2,
"spawnRate": 40,
"burst": 0,
"startPosition": [0, 3, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0.25, 0],
"size": 10
},
"discEmitter": {
"type": "disc",
"particleName": "smokeSpin2",
"lifetime": 10,
"spawnRate": 40,
"burst": 0,
"startPosition": [0, 0.2, 0],
"facingRotation": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"size": 3
}
},
"particles": {
"soulFire": {
"lifetime": 1.5,
"startYRotation": -1,
"yVelocity": 0,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": -0.5,
"startSize": 0.6,
"growthVelocity": 0,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 0.5],
"fadeTime": 0.3,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 0,
"animationStartY": 10,
"animationCount": 16
},
"healParticle": {
"lifetime": 0.2,
"startYRotation": -1,
"yVelocity": 10,
"startPosition": [0, 0.5, 0],
"positionalVelocity": [0, 0.5, 0],
"gravity": 0.6,
"startSize": 0.2,
"growthVelocity": -0.1,
"facingRotation": [0, 0.5, 0],
"color": [1.4, 0.75, 0.9, 1],
"fadeTime": 0.5,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 0,
"animationStartY": 9,
"animationCount": 8
},
"impactParticle": {
"lifetime": 0.25,
"startYRotation": 0,
"yVelocity": 0,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 1,
"startSize": 0.08,
"growthVelocity": 0,
"facingRotation": [0, 0, 0],
"color": [1.3, 1.3, 1.4, 1],
"fadeTime": 0.27,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 5,
"animationStartY": 10,
"animationCount": 1
},
"soulFireBlast": {
"lifetime": 0.5,
"startYRotation": -1,
"yVelocity": 0,
"startPosition": [0, 0.8, 0],
"positionalVelocity": [0, 0.2, 0],
"gravity": 0,
"startSize": 1.8,
"growthVelocity": 0.2,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 1],
"fadeTime": 0.1,
"useCollision": false,
"useBillboarded": false,
"textureAtlas": "atlas.swosh",
"tileCountX": 8,
"tileCountY": 8,
"animationStartX": 0,
"animationStartY": 3,
"animationCount": 7
},
"soulFireBlastClimax": {
"lifetime": 0.25,
"startYRotation": 0,
"yVelocity": 0,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 0,
"startSize": 1.8,
"growthVelocity": 0,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 1],
"fadeTime": 0.3,
"useCollision": false,
"useBillboarded": false,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 6,
"animationStartY": 10,
"animationCount": 1
},
"brokenglass": {
"lifetime": 0.5,
"startYRotation": -1,
"yVelocity": 1,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 2,
"startSize": 0.15,
"growthVelocity": -0.1,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 0.7],
"fadeTime": 0.1,
"useCollision": true,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 5,
"animationStartY": 10,
"animationCount": 1
},
"glitter": {
"lifetime": 0.5,
"startYRotation": 0,
"yVelocity": 5,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": -0.5,
"startSize": 0.05,
"growthVelocity": 0.05,
"facingRotation": [0, 0, 0],
"color": [1, 1, 0.7, 1],
"fadeTime": 0.1,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 0,
"animationStartY": 9,
"animationCount": 8,
"unlit": true
},
"healglitter": {
"lifetime": 0.7,
"startYRotation": 0,
"yVelocity": 10,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": -0.5,
"startSize": 0.08,
"growthVelocity": 0.01,
"facingRotation": [0, 0, 0],
"color": [0.3, 0.8, 1, 0.8],
"fadeTime": 0.1,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 0,
"animationStartY": 9,
"animationCount": 8,
"unlit": true
},
"sparks": {
"lifetime": 1.2,
"startYRotation": -1,
"yVelocity": 1,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 1,
"startSize": 0.15,
"growthVelocity": -0.1,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 0.5],
"fadeTime": 0.1,
"useCollision": true,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 5,
"animationStartY": 10,
"animationCount": 1
},
"dustBig": {
"growthVelocity": 0.05,
"color": [1, 0.85, 0.70, 0.5],
"lifetime": 0.65,
"startYRotation": -1,
"yVelocity": -1,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, -1, 0],
"gravity": 0.1,
"startSize": 0.35,
"facingRotation": [0, 0, 0],
"fadeTime": 0.5,
"useCollision": true,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 5,
"animationStartY": 10,
"animationCount": 1
},
"dust": {
"growthVelocity": 0.05,
"color": [0.95, 0.9, 0.85, 0.25],
"lifetime": 0.5,
"startYRotation": -1,
"yVelocity": -1,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 0.0,
"startSize": 0.05,
"facingRotation": [0, 0, 0],
"fadeTime": 0.3,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 5,
"animationStartY": 10,
"animationCount": 1
},
"potionAreaParticle": {
"lifetime": 0.04,
"startYRotation": 0,
"yVelocity": 20,
"startPosition": [0, 0.05, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 0,
"startSize": 1.5,
"growthVelocity": -1,
"facingRotation": [0, 0, 0],
"color": [1.3, 1.3, 1.3, 1],
"fadeTime": 0.5,
"useCollision": false,
"useBillboarded": false,
"textureAtlas": "atlas.circle",
"tileCountX": 1,
"tileCountY": 1,
"animationStartX": 0,
"animationStartY": 0,
"animationCount": 1
},
"smokeSpin": {
"lifetime": 1,
"startYRotation": 0,
"yVelocity": 1,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 0.7,
"startSize": 0.4,
"growthVelocity": 0,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 1],
"fadeTime": 0.1,
"useCollision": false,
"useBillboarded": false,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 0,
"animationStartY": 10,
"animationCount": 16
},
"smokeSpin2": {
"lifetime": 1,
"startYRotation": 0,
"yVelocity": 0,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 0.0,
"startSize": 0.25,
"growthVelocity": 0,
"facingRotation": [0, 0, 0],
"color": [1, 1, 0, 1],
"fadeTime": 0.1,
"useCollision": false,
"useBillboarded": false,
"textureAtlas": "atlas.particles",
"tileCountX": 16,
"tileCountY": 16,
"animationStartX": 0,
"animationStartY": 10,
"animationCount": 16
},
"levelUpTextParticle": {
"lifetime": 1.0,
"startYRotation": 180,
"yVelocity": 0,
"startPosition": [-0.25, -1, 0.3],
"positionalVelocity": [0, -0.75, 0],
"gravity": 0,
"startSize": 1.2,
"growthVelocity": 1.9,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 1],
"fadeTime": 0.3,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "text.levelup",
"tileCountX": 1,
"tileCountY": 1,
"animationStartX": 0,
"animationStartY": 0,
"animationCount": 1,
"unlit": true
},
"checkpointTextParticle": {
"lifetime": 1.2,
"startYRotation": 180,
"yVelocity": 0,
"startPosition": [0, -1, 0],
"positionalVelocity": [0, -0.8, 0],
"gravity": 0,
"startSize": 1.0,
"growthVelocity": 10,
"facingRotation": [0, 0, 0],
"color": [0.7, 0.8, 0.9, 1],
"fadeTime": 0.3,
"useCollision": false,
"useBillboarded": true,
"textureAtlas": "text.checkpoint",
"tileCountX": 1,
"tileCountY": 1,
"animationStartX": 0,
"animationStartY": 0,
"animationCount": 1
},
"webParticle": {
"lifetime": 2.25,
"startYRotation": 0,
"yVelocity": 0,
"startPosition": [0, 0, 0],
"positionalVelocity": [0, 0, 0],
"gravity": 0,
"startSize": 0.5,
"growthVelocity": 0,
"facingRotation": [0, 0, 0],
"color": [1, 1, 1, 1],
"fadeTime": 0.05,
"useCollision": false,
"useBillboarded": false,
"textureAtlas": "block.web",
"tileCountX": 1,
"tileCountY": 1,
"animationStartX": 0,
"animationStartY": 0,
"animationCount": 1
}
}
}
+67
View File
@@ -0,0 +1,67 @@
{
"window.fullscreen": false,
"mob.skeleton.speed": 0.2,
"mob.skeleton.damage_multiplier": 1,
"mob.zombie.speed": 0.23,
"mob.zombie.damage_multiplier": 0.5,
"mob.husk.speed": 0.2,
"mob.husk.damage_multiplier": 2.5,
"mob.husk.health": 100,
"mob.all.pinata_chance": 0.05,
"mob.all.drop_chance.health_potion": 0.05,
"mob.all.drop_chance.harming_splash_potion": 0.06,
"mob.skeleton.drop_chance.arrow_stack": 0.5,
"camera.offset.x": -12,
"camera.offset.y": 18,
"camera.offset.z": 12,
"camera.fov": 30,
"camera.interpolation.horizontal": 0.3,
"camera.interpolation.vertical": 0.1,
"camera.interpolation.zoom": 0.2,
"camera.interpolation.entity_zoom": 0.08,
"camera.player_movement.factor": 0.0,
"camera.player_movement.cap": 0.0,
"camera.player_direction.factor": 0.0,
"camera.player_direction.cap": 0.0,
"camera.entity_zoom.mob_threshold_max": 5,
"camera.entity_zoom.search_range_min": 2.0,
"camera.entity_zoom.search_range_max": 12.0,
"camera.entity_zoom.mob_weight": 0.08,
//With "lookahead":
//"camera.interpolation.horizontal": 0.2,
//"camera.player_movement.factor": 0.4,
//"camera.player_movement.cap": 2.0,
"level.generator.level": "cave",
"level.generator.seed" : 101,
"level.fill.enabled": true,
"level.fill.block_id": 0,
"level.fill.gradient.min_distance": 0,
"level.fill.gradient.add": 5,
"level.fill.gradient.slope": 1,
"postfx.blur_size": 1.5,
"postfx.downsize_scale": 4,
"postfx.bloom_concentration": 3.9,
"postfx.bloom_power": 2.4,
"narration.subtitles.filepath": "lovika/global/subtitles.sub",
"narration.subtitles.enabled": true,
"narration.voice.enabled": true,
"playerlight.distance": 8.0,
"playerlight.power": 0.9,
"editor.camera.ground_speed_multiplier": 10,
"editor.camera.flying_speed_multiplier": 25,
"editor.camera.flying_lift_multiplier": 3
}
+88
View File
@@ -0,0 +1,88 @@
#intro
0
As she left the safety of the woodlands,
our hero steeled herself.
5
Steeled herself? How? I hear you cry from
beyond your computer monitor, how?
10
Well, some questions are best left unanswered.
14
Frustrated? Good!
You'll need to channel that anger.
18.5
#ch0
0
Her onslaught continued. None could stand
in our hero's way.
4.5
Shambling horrors from the grave or
poisonous web-spawn, it mattered little.
9.5
Let us not mention that our hero's equipment was,
by design, far superior to that of her adversaries.
15
Nor should we bring up the fact that our hero had
earned several skill points prior to this battle.
20.3
No, no, this fight was in no way stacked in our beloved
hero's favour. Go hero!
26.5
#ch01
0
*wakes up startled from sleep* Oh, am I on? Sorry, sorry.
5
*Clears throat* She was unstoppable. A...*sigh* really?
Who comes up with this stuff?
12.5
Well, alright. She was a titanic force of nature.
17.6
This was merely a pitstop, a slight delay if you will,
on her...*sigh*... journey of slaughter.
25
Who wrote this? I'm a classically trained actor dammit! I have standards!
I'll require a raise, and Hamill's old dressing room!
33.5
#ch02
0
Another checkpoint? How terribly original...
2
Our hero prepared for the final challenge. What horror awaited her next?
What...*sigh*...god dammit. No, sorry. I can't do this.
13
Oh nevermind your silly script! It's completely devoid of any
meaning, truth or actual story.
19
But then again, what is an on-call voice actor to expect from a
script written in a hurry by an intern for a focus test...
27
#end
0
Victory! Huzza! Level completed! Ehrm no but,
seriously... good job.
6.5