adjusted famira balancing

This commit is contained in:
pennyrigate 2024-06-11 19:30:24 -04:00
parent 7240402776
commit 9e8abe19ef
19 changed files with 128 additions and 41 deletions

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/rumble_revolution.ogg-f4caaf13c218d7e4e59d5ae9bc9b9d8a.oggstr"
[deps]
source_file="res://audio/music/rumble_revolution.ogg"
dest_files=[ "res://.import/rumble_revolution.ogg-f4caaf13c218d7e4e59d5ae9bc9b9d8a.oggstr" ]
[params]
loop=false
loop_offset=0

BIN
audio/sounds/cop_splat.ogg Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/cop_splat.ogg-5903ad8999d95a4ef126279b8e808331.oggstr"
[deps]
source_file="res://audio/sounds/cop_splat.ogg"
dest_files=[ "res://.import/cop_splat.ogg-5903ad8999d95a4ef126279b8e808331.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

View file

@ -0,0 +1,15 @@
[remap]
importer="ogg_vorbis"
type="AudioStreamOGGVorbis"
path="res://.import/fami_grumble.ogg-cabbe16ca489c6f315bf9a64fc367c42.oggstr"
[deps]
source_file="res://audio/sounds/fami_grumble.ogg"
dest_files=[ "res://.import/fami_grumble.ogg-cabbe16ca489c6f315bf9a64fc367c42.oggstr" ]
[params]
loop=false
loop_offset=0

Binary file not shown.

BIN
audio/sounds/se_g2.wav Normal file

Binary file not shown.

View file

@ -0,0 +1,23 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/se_g2.wav-2200ac432f464093b1975ff4500900fb.sample"
[deps]
source_file="res://audio/sounds/se_g2.wav"
dest_files=[ "res://.import/se_g2.wav-2200ac432f464093b1975ff4500900fb.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View file

@ -54,6 +54,8 @@ const a_teleport = preload("res://audio/sounds/teleport.ogg")
const a_mkey = preload("res://audio/sounds/mkey.ogg")
const a_msx_die = preload("res://audio/sounds/msx_die.ogg")
const a_famira = preload("res://audio/sounds/famira.ogg")
const a_vulcan = preload("res://audio/sounds/se_g2.wav")
const a_grumble = preload("res://audio/sounds/fami_grumble.ogg")
var loop_section = null
var has_looped = false

View file

@ -4,7 +4,7 @@ signal cutscene_finished
const DeathParticles = preload("res://objects/enemy/death_particles.tscn")
export var cutscene_skip: float = 92.0
export var cutscene_skip: float = 78.5
onready var animation_player: AnimationPlayer = $AnimationPlayer

View file

@ -192,11 +192,11 @@ tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 4.95088, 14.1874, 20.9397, 30.797, 40.2982, 49.7601, 59.7868, 64.7672, 71.5391, 72.2, 92 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"times": PoolRealArray( 0, 4.95088, 13, 19, 28.5, 37, 46.5, 51.5, 58, 59, 78.5 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 2,
"values": [ "Aha so you've made it this far, however your efforts are all in vain.", "You see, SG,
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "I've heard you want to start a revolution. Well, I'll have you know I kicked off my own revolution in 2068, and to be honest I don't quite see why you want my revolution to end.", "You know what they say, the freer the market, the freer the people, and ever since then I've never felt so free! I think your revolution is a foolish pipe dream! ", "Adam Smith once said \"Nobody but a beggar chooses to depend chiefly upon the benevolence of his fellow citizens\", your commie society could never work!", "I will defend my status quo as fiercly as possible! It was not by my hand that our society was erected, but it will be by mine that it is upheld!", "Oh? How will i reconstruct the Zircon Ultima? You're just the perfect tool for that. ", "While you've been on your gay little adventure collecting shards I've been waiting for this very moment to take them all from you!", "Have at you!", "", "" ]
"values": [ "Aha! so you've made it this far, however your efforts are all in vain.", "You see, SG,
I plan to use the shards to power my spaceship, its exhaust will be so powerful, you peasants will all be vaporized. ", "Me and all of the wonderful billionaires of the world will head to planet X, the newly discovered planet beyond pluto.", "I've heard you want to start a revolution. Well, I'll have you know I kicked off my own revolution in 2068, and to be honest I don't quite see why you want my revolution to end.", "You know what they say, the freer the market, the freer the people, ever since then I've never felt so free! I think your revolution is a foolish pipe dream! ", "Adam Smith once said \"Nobody but a beggar chooses to depend chiefly upon the benevolence of his fellow citizens\", your commie society would never work!", "Oh? How will i reconstruct the Zircon Ultima? You're just the perfect tool for that. ", "While you've been on your gay little adventure collecting shards I've been waiting for this very moment to take them all from you!", "Have at you!", "", "" ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("FamiVoice:playing")
@ -205,10 +205,10 @@ tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 0.01, 92 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"times": PoolRealArray( 0, 78.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ false, true, false ]
"values": [ true, false ]
}
tracks/2/type = "value"
tracks/2/path = NodePath("Cop:position")
@ -217,7 +217,7 @@ tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PoolRealArray( 0, 72.3, 74 ),
"times": PoolRealArray( 0, 59, 60.5 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Vector2( -8, 169 ), Vector2( -8, 169 ), Vector2( 72, 169 ) ]
@ -229,7 +229,7 @@ tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PoolRealArray( 72.3, 74 ),
"times": PoolRealArray( 59, 60.5 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 1,
"values": [ "walk", "gun" ]
@ -241,7 +241,7 @@ tracks/4/loop_wrap = true
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/keys = {
"times": PoolRealArray( 0, 75, 77, 77.4, 83, 85, 89, 89.375 ),
"times": PoolRealArray( 0, 61.5, 63.5, 64, 69.5, 71.5, 75.5, 76 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 1,
"values": [ "idle", "walk", "idle", "punch", "walk", "idle", "shrink", "orb" ]
@ -253,7 +253,7 @@ tracks/5/loop_wrap = true
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/keys = {
"times": PoolRealArray( 0, 75, 77, 83, 85, 89, 91, 92 ),
"times": PoolRealArray( 0, 61.5, 63.5, 69.5, 71.5, 75.5, 77.5, 78.5 ),
"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
"update": 0,
"values": [ Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 105, 167 ), Vector2( 105, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 167 ), Vector2( 160, 83 ) ]
@ -265,7 +265,7 @@ tracks/6/loop_wrap = true
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/keys = {
"times": PoolRealArray( 0.1, 78, 83 ),
"times": PoolRealArray( 0.1, 64.5, 69.5 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ false, true, false ]
@ -277,7 +277,7 @@ tracks/7/loop_wrap = true
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/keys = {
"times": PoolRealArray( 0, 86, 89 ),
"times": PoolRealArray( 0, 72.5, 75.5 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 1,
"values": [ false, true, false ]
@ -289,7 +289,7 @@ tracks/8/loop_wrap = true
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/keys = {
"times": PoolRealArray( 0, 88, 89 ),
"times": PoolRealArray( 0, 74.5, 75.5 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 0 ), Color( 0.396078, 1, 1, 1 ) ]
@ -301,7 +301,7 @@ tracks/9/loop_wrap = true
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/keys = {
"times": PoolRealArray( 0, 88, 89 ),
"times": PoolRealArray( 0, 74.5, 75.5 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 0 ), Color( 0.345098, 0.74902, 0.878431, 1 ) ]
@ -313,7 +313,7 @@ tracks/10/loop_wrap = true
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/keys = {
"times": PoolRealArray( 92 ),
"times": PoolRealArray( 78.5 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ "cutscene_finished" ],
@ -403,7 +403,7 @@ material = ExtResource( 19 )
position = Vector2( 160, 167 )
scale = Vector2( -1, 1 )
frames = SubResource( 7 )
animation = "idle"
animation = "orb"
playing = true
[node name="FamiVoice" type="AudioStreamPlayer" parent="."]
@ -417,7 +417,7 @@ anims/cutscene = SubResource( 2 )
[node name="Cop" type="AnimatedSprite" parent="."]
material = SubResource( 8 )
position = Vector2( -8, 169 )
position = Vector2( 72, 169 )
frames = SubResource( 13 )
animation = "gun"
playing = true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

Before After
Before After

View file

@ -28,6 +28,7 @@ func _on_cutscene_finished() -> void:
famira.visible = true
famira.animation_player.play("grow")
$AnimationPlayer.play("drop-stg")
Audio.play_music(load("res://audio/music/rumble_revolution.ogg"))
yield(get_tree().create_timer(0.5), "timeout")
$FamiCutscene/FamiHuman.visible = false

View file

@ -5,9 +5,16 @@ const SmallExplosion = preload("res://objects/enemy/boss/2600_small_explosion.ts
export var direction: Vector2 = Vector2.LEFT
export var speed: float = 50.0
export var damage: float = 0.0
onready var sprite = $AnimatedSprite
var lifetime = 0
func _physics_process(delta: float) -> void:
position += direction * speed * delta
lifetime += 1
if lifetime < 10:
var r = rand_range(0,5)
sprite.position.y += sin(Game.time * 20)
print(lifetime)
func _exit_tree() -> void:
var explosion = SmallExplosion.instance()

View file

@ -5,16 +5,17 @@ signal died()
signal health_changed(amount)
export var push_speed: float = 60.0
export var chase_speed: float = 40.0
export var breath_dps: float = 50.0
export var push_speed: float = 30.0
export var chase_speed: float = 50.0
export var breath_dps: float = 20.0
export var breath_knockback: float = 16.0
export var punch_damage: float = 10.0
export var punch_knockback: float = 8.0
export var punch_damage: float = 8.0
export var punch_knockback: float = 40.0
export var hurting: bool = false
export var hp: float = 100.0
export var sg2083_beam_dps: float = 10.0
export var sg2083_path: NodePath
export var defense: float = 0.6
onready var animation_player: AnimationPlayer = $"%AnimationPlayer"
@ -22,7 +23,7 @@ onready var state_chart: StateChart = $StateChart
onready var in_range_cast: RayCast2D = $InRangeCast
onready var out_range_cast: RayCast2D = $OutRangeCast
onready var shoot_range_cast: RayCast2D = $ShootRangeCast
onready var grumble = $Grumble
func _physics_process(delta: float) -> void:
var sg2083 := get_node(sg2083_path)
@ -35,6 +36,8 @@ func _physics_process(delta: float) -> void:
state_chart.send_event("out_of_range")
elif in_range_cast.is_colliding():
state_chart.send_event("in_range")
if fmod(Game.time, 15.0) == 0.0:
Audio.play_sound(Audio.a_grumble,Audio.ac_boss)
func start_push() -> void:
@ -48,7 +51,7 @@ func stop_push() -> void:
func hurt(amount: float) -> void:
if hp <= 0.0:
return
hp -= amount
hp -= amount * defense
hp = max(hp, 0.0)
emit_signal("health_changed", hp)
if hp <= 0.0:
@ -64,6 +67,7 @@ func _attack() -> void:
func _on_Roar_state_entered() -> void:
animation_player.play("roar", 0.25)

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=53 format=2]
[gd_scene load_steps=54 format=2]
[ext_resource path="res://objects/enemy/boss/famira.gd" type="Script" id=1]
[ext_resource path="res://shaders/scale3x.gdshader" type="Shader" id=2]
@ -26,6 +26,7 @@
[ext_resource path="res://graphics/enemy/boss/fami_parts/head_lower.png" type="Texture" id=24]
[ext_resource path="res://graphics/enemy/boss/fami_parts/head_upper.png" type="Texture" id=25]
[ext_resource path="res://graphics/enemy/boss/fami_parts/eye.png" type="Texture" id=26]
[ext_resource path="res://audio/sounds/fami_grumble.ogg" type="AudioStream" id=27]
[sub_resource type="RectangleShape2D" id=11]
extents = Vector2( 28, 64 )
@ -3999,25 +4000,25 @@ collision_mask = 128
monitorable = false
[node name="Body" type="CollisionShape2D" parent="Hitbox"]
position = Vector2( 0.00461769, -23.9291 )
rotation = -0.0114693
position = Vector2( 0.00459766, -23.9291 )
rotation = -0.0114701
shape = SubResource( 13 )
[node name="Brain" type="CollisionShape2D" parent="Hitbox"]
position = Vector2( 11.5072, -96.7914 )
position = Vector2( 11.5069, -96.7914 )
rotation = 2.48158
z_index = 100
shape = SubResource( 14 )
[node name="LowerJaw" type="CollisionShape2D" parent="Hitbox"]
position = Vector2( -21.3082, -76.1166 )
rotation = 1.66396
position = Vector2( -21.3083, -76.1164 )
rotation = 1.66395
z_index = 100
shape = SubResource( 15 )
[node name="UpperJaw" type="CollisionShape2D" parent="Hitbox"]
position = Vector2( -21.8181, -103.259 )
rotation = -1.66238
position = Vector2( -21.8184, -103.259 )
rotation = -1.66239
z_index = 100
shape = SubResource( 16 )
@ -4132,6 +4133,9 @@ collision_mask = 4
collide_with_areas = true
collide_with_bodies = false
[node name="Grumble" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 27 )
[connection signal="area_entered" from="Hitbox" to="." method="_on_Hitbox_area_entered"]
[connection signal="body_entered" from="Hitbox" to="." method="_on_Hitbox_body_entered"]
[connection signal="state_entered" from="StateChart/Root/Roar" to="." method="_on_Roar_state_entered" flags=3]

View file

@ -19,10 +19,10 @@ export var shot_speed: float = 50.0
export var move_speed: float = 30.0
export var safe_from_breath: bool = false
export var make_explosions: bool = false
export var bullet_damage: float = 1.0
export var bullet_energy: float = 5.0
export var beam_energy: float = 50.0
export var duck_energy: float = 10.0
export var bullet_damage: float = 0.2
export var bullet_energy: float = 0.0
export var beam_energy: float = 75.0
export var duck_energy: float = 0.15
export var explosion_rect: Rect2
export var famira_path: NodePath
@ -43,7 +43,6 @@ func _physics_process(delta: float) -> void:
return
State.STAND:
if Input.is_action_pressed("move_down") and energy >= duck_energy:
set_energy(energy - duck_energy)
state = State.DUCK
anims.play("Duck")
elif Input.is_action_pressed("move_right"):
@ -55,6 +54,8 @@ func _physics_process(delta: float) -> void:
State.DUCK:
if not Input.is_action_pressed("move_down") and anims.current_animation.empty():
anims.play("UnDuck")
energy -= duck_energy
State.FORWARD:
move_and_slide(Vector2(move_speed, 0.0))
State.BACK:
@ -87,7 +88,7 @@ func land(duck: bool) -> void:
func shoot() -> void:
set_energy(energy - bullet_energy)
Audio.play_sound(Audio.a_bullet_barrage,Audio.ac_collectible)
Audio.play_sound(Audio.a_vulcan,Audio.ac_menu)
for pos in bullet_positions.get_children():
var bullet = Bullet.instance()
bullet.global_position = pos.global_position

View file

@ -1610,7 +1610,7 @@ update_scale = false
[node name="KneeBack" type="Sprite" parent="Axle"]
modulate = Color( 0.74902, 0.74902, 0.74902, 1 )
position = Vector2( 6.25088, 28.1233 )
position = Vector2( 6.25089, 28.1233 )
scale = Vector2( 1, -1 )
z_index = -1
texture = ExtResource( 8 )