player can die

This commit is contained in:
artem 2024-02-01 21:18:02 +03:00
parent c8acf41c09
commit a7eeec3d7d
6 changed files with 392 additions and 364 deletions

Binary file not shown.

View File

@ -1593,68 +1593,68 @@ function __wbg_get_imports() {
const ret = wasm.memory;
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11137 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9434, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper11149 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9436, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11138 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9434, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper11150 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9436, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11139 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9434, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper11151 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9436, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11140 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9434, __wbg_adapter_39);
imports.wbg.__wbindgen_closure_wrapper11152 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9436, __wbg_adapter_39);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11141 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9434, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper11153 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9436, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11142 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9434, __wbg_adapter_44);
imports.wbg.__wbindgen_closure_wrapper11154 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9436, __wbg_adapter_44);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper11146 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9434, __wbg_adapter_32);
imports.wbg.__wbindgen_closure_wrapper11158 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 9436, __wbg_adapter_32);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper30795 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26003, __wbg_adapter_49);
imports.wbg.__wbindgen_closure_wrapper30811 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26005, __wbg_adapter_49);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper32213 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26722, __wbg_adapter_52);
imports.wbg.__wbindgen_closure_wrapper32229 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26724, __wbg_adapter_52);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper32214 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26722, __wbg_adapter_55);
imports.wbg.__wbindgen_closure_wrapper32230 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26724, __wbg_adapter_55);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper32215 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26722, __wbg_adapter_55);
imports.wbg.__wbindgen_closure_wrapper32231 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26724, __wbg_adapter_55);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper32216 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26722, __wbg_adapter_55);
imports.wbg.__wbindgen_closure_wrapper32232 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26724, __wbg_adapter_55);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper32217 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26722, __wbg_adapter_55);
imports.wbg.__wbindgen_closure_wrapper32233 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26724, __wbg_adapter_55);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper32218 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26722, __wbg_adapter_55);
imports.wbg.__wbindgen_closure_wrapper32234 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26724, __wbg_adapter_55);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper32219 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26722, __wbg_adapter_55);
imports.wbg.__wbindgen_closure_wrapper32235 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 26724, __wbg_adapter_55);
return addHeapObject(ret);
};
imports.wbg.__wbindgen_closure_wrapper37765 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 30118, __wbg_adapter_68);
imports.wbg.__wbindgen_closure_wrapper37781 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 30120, __wbg_adapter_68);
return addHeapObject(ret);
};

View File

@ -47,6 +47,7 @@ pub struct Enemy {
jump: bool,
animations: Vec<SpriteSheetAnimation>,
fight: bool,
win: bool,
#[reflect(hidden)]
#[visit(skip)]
@ -62,8 +63,8 @@ pub struct Enemy {
}
impl Enemy {
fn init(&mut self) {
self.attack_damage = 2.0;
self.attack_speed = 0.5;
self.attack_damage = 100.0;
self.attack_speed = 0.3;
}
fn intersections(&self, graph: &mut Graph, max_len: f32) -> Option<Vec<Intersection>> {
@ -121,6 +122,11 @@ impl Enemy {
}
match graph.try_get_script_of_mut::<Player>(self.player_handle) {
Some(script) => {
if script.get_health() <= 0.0 {
self.fight = false;
self.win = true;
break;
}
script.take_damage(&self.attack_damage);
}
None => {}
@ -171,7 +177,6 @@ impl Enemy {
see_player = true;
}
break;
}
}
if !see_player {
@ -239,6 +244,9 @@ impl Enemy {
}
fn set_fight(&mut self, context: &mut ScriptContext) {
if self.win {
return;
}
let distance = self.distance_to_player(context);
self.fight = distance < DISTANCE_TO_FIGHT && distance > -1.0 * DISTANCE_TO_FIGHT;
if !self.fight {

View File

@ -60,6 +60,7 @@ enum Animations {
Idle = 1,
Jump = 2,
Fight = 3,
Dead = 4,
}
uuid_provider!(Player = "c5671d19-9f1a-4286-8486-add4ebaadaec");
@ -153,9 +154,16 @@ impl Player {
}
pub fn take_damage(&mut self, damage: &f32) {
if self.health == 0.0 {
return;
}
self.health -= damage;
}
pub fn get_health(&self) -> f32 {
return self.health;
}
pub fn loop_over(&mut self, context: &mut ScriptContext) {
let rigid_body = context.scene.graph[context.handle].cast_mut::<RigidBody>();
match rigid_body {
@ -210,6 +218,9 @@ impl Player {
}
fn get_speed(&self) -> f32 {
if self.health <= 0.0 {
return 0.0;
}
return if self.move_left {
3.0
} else if self.move_right {
@ -242,6 +253,9 @@ impl Player {
}
pub fn jump_do(&mut self, context: &mut ScriptContext) {
if self.health <= 0.0 {
return;
}
let rigid_body = context.scene.graph[context.handle].cast_mut::<RigidBody>();
match rigid_body {
Some(rigid_data) => {
@ -317,6 +331,9 @@ impl Player {
}
}
fn animate_choose(&mut self, context: &mut ScriptContext) {
if self.health <= 0.0 {
return;
}
let rigid_body = context.scene.graph[context.handle].cast_mut::<RigidBody>();
if let Some(rigid_data) = rigid_body {
if self.jump && (rigid_data.lin_vel().y as i32) < 1 {
@ -375,6 +392,9 @@ impl Player {
self.animate_choose(context);
//let can_update_frame = self.is_need_update_anim_frame(context);
let mut current_animation = Animations::Idle as usize;
if self.health <= 0.0 {
current_animation = Animations::Dead as usize;
}
if !self.current_animation.is_empty() {
match self.current_animation.pop_back() {
Some(anim) => {

View File

@ -322,61 +322,19 @@
),
node_infos: {
(
index: 38,
index: 65,
generation: 1,
): (
is_expanded: true,
),
(
index: 8,
generation: 1,
): (
is_expanded: false,
),
(
index: 71,
index: 82,
generation: 1,
): (
is_expanded: true,
),
(
index: 10,
generation: 1,
): (
is_expanded: true,
),
(
index: 22,
generation: 1,
): (
is_expanded: false,
),
(
index: 27,
generation: 1,
): (
is_expanded: false,
),
(
index: 54,
generation: 1,
): (
is_expanded: true,
),
(
index: 34,
generation: 1,
): (
is_expanded: true,
),
(
index: 63,
generation: 1,
): (
is_expanded: false,
),
(
index: 89,
index: 53,
generation: 1,
): (
is_expanded: true,
@ -387,102 +345,12 @@
): (
is_expanded: true,
),
(
index: 47,
generation: 1,
): (
is_expanded: true,
),
(
index: 33,
generation: 1,
): (
is_expanded: true,
),
(
index: 87,
generation: 1,
): (
is_expanded: false,
),
(
index: 49,
generation: 1,
): (
is_expanded: false,
),
(
index: 2,
generation: 1,
): (
is_expanded: true,
),
(
index: 55,
generation: 1,
): (
is_expanded: true,
),
(
index: 90,
generation: 1,
): (
is_expanded: false,
),
(
index: 40,
generation: 1,
): (
is_expanded: true,
),
(
index: 62,
generation: 1,
): (
is_expanded: true,
),
(
index: 92,
generation: 1,
): (
is_expanded: true,
),
(
index: 44,
generation: 1,
): (
is_expanded: true,
),
(
index: 58,
generation: 1,
): (
is_expanded: true,
),
(
index: 83,
generation: 1,
): (
is_expanded: true,
),
(
index: 45,
generation: 1,
): (
is_expanded: true,
),
(
index: 35,
generation: 1,
): (
is_expanded: true,
),
(
index: 65,
generation: 1,
): (
is_expanded: true,
),
(
index: 28,
generation: 1,
@ -490,55 +358,7 @@
is_expanded: false,
),
(
index: 11,
generation: 1,
): (
is_expanded: false,
),
(
index: 84,
generation: 1,
): (
is_expanded: false,
),
(
index: 29,
generation: 1,
): (
is_expanded: true,
),
(
index: 51,
generation: 1,
): (
is_expanded: true,
),
(
index: 81,
generation: 1,
): (
is_expanded: false,
),
(
index: 13,
generation: 1,
): (
is_expanded: true,
),
(
index: 52,
generation: 1,
): (
is_expanded: true,
),
(
index: 0,
generation: 1,
): (
is_expanded: true,
),
(
index: 77,
index: 33,
generation: 1,
): (
is_expanded: true,
@ -550,67 +370,7 @@
is_expanded: true,
),
(
index: 93,
generation: 1,
): (
is_expanded: false,
),
(
index: 56,
generation: 1,
): (
is_expanded: true,
),
(
index: 69,
generation: 1,
): (
is_expanded: false,
),
(
index: 3,
generation: 1,
): (
is_expanded: true,
),
(
index: 32,
generation: 1,
): (
is_expanded: true,
),
(
index: 14,
generation: 1,
): (
is_expanded: true,
),
(
index: 94,
generation: 1,
): (
is_expanded: true,
),
(
index: 9,
generation: 1,
): (
is_expanded: false,
),
(
index: 39,
generation: 1,
): (
is_expanded: false,
),
(
index: 17,
generation: 1,
): (
is_expanded: false,
),
(
index: 31,
index: 48,
generation: 1,
): (
is_expanded: true,
@ -622,67 +382,13 @@
is_expanded: true,
),
(
index: 91,
generation: 1,
): (
is_expanded: true,
),
(
index: 6,
generation: 1,
): (
is_expanded: true,
),
(
index: 24,
index: 39,
generation: 1,
): (
is_expanded: false,
),
(
index: 15,
generation: 1,
): (
is_expanded: true,
),
(
index: 50,
generation: 1,
): (
is_expanded: true,
),
(
index: 95,
generation: 1,
): (
is_expanded: true,
),
(
index: 72,
generation: 1,
): (
is_expanded: false,
),
(
index: 5,
generation: 1,
): (
is_expanded: true,
),
(
index: 60,
generation: 1,
): (
is_expanded: false,
),
(
index: 48,
generation: 1,
): (
is_expanded: true,
),
(
index: 78,
index: 22,
generation: 1,
): (
is_expanded: false,
@ -694,11 +400,95 @@
is_expanded: true,
),
(
index: 46,
index: 32,
generation: 1,
): (
is_expanded: true,
),
(
index: 2,
generation: 1,
): (
is_expanded: true,
),
(
index: 40,
generation: 1,
): (
is_expanded: true,
),
(
index: 15,
generation: 1,
): (
is_expanded: true,
),
(
index: 84,
generation: 1,
): (
is_expanded: false,
),
(
index: 20,
generation: 1,
): (
is_expanded: true,
),
(
index: 51,
generation: 1,
): (
is_expanded: true,
),
(
index: 78,
generation: 1,
): (
is_expanded: false,
),
(
index: 90,
generation: 1,
): (
is_expanded: false,
),
(
index: 36,
generation: 1,
): (
is_expanded: false,
),
(
index: 95,
generation: 1,
): (
is_expanded: true,
),
(
index: 80,
generation: 1,
): (
is_expanded: true,
),
(
index: 87,
generation: 1,
): (
is_expanded: false,
),
(
index: 63,
generation: 1,
): (
is_expanded: false,
),
(
index: 26,
generation: 1,
): (
is_expanded: true,
),
(
index: 86,
generation: 1,
@ -706,7 +496,139 @@
is_expanded: true,
),
(
index: 21,
index: 66,
generation: 1,
): (
is_expanded: false,
),
(
index: 57,
generation: 1,
): (
is_expanded: false,
),
(
index: 44,
generation: 1,
): (
is_expanded: true,
),
(
index: 35,
generation: 1,
): (
is_expanded: true,
),
(
index: 29,
generation: 1,
): (
is_expanded: true,
),
(
index: 6,
generation: 1,
): (
is_expanded: true,
),
(
index: 1,
generation: 1,
): (
is_expanded: true,
),
(
index: 34,
generation: 1,
): (
is_expanded: true,
),
(
index: 23,
generation: 1,
): (
is_expanded: true,
),
(
index: 93,
generation: 1,
): (
is_expanded: false,
),
(
index: 3,
generation: 1,
): (
is_expanded: true,
),
(
index: 77,
generation: 1,
): (
is_expanded: true,
),
(
index: 56,
generation: 1,
): (
is_expanded: true,
),
(
index: 0,
generation: 1,
): (
is_expanded: true,
),
(
index: 94,
generation: 1,
): (
is_expanded: true,
),
(
index: 31,
generation: 1,
): (
is_expanded: true,
),
(
index: 30,
generation: 1,
): (
is_expanded: true,
),
(
index: 62,
generation: 1,
): (
is_expanded: true,
),
(
index: 43,
generation: 1,
): (
is_expanded: false,
),
(
index: 89,
generation: 1,
): (
is_expanded: true,
),
(
index: 83,
generation: 1,
): (
is_expanded: true,
),
(
index: 74,
generation: 1,
): (
is_expanded: true,
),
(
index: 11,
generation: 1,
): (
is_expanded: false,
@ -730,13 +652,19 @@
is_expanded: false,
),
(
index: 82,
index: 19,
generation: 1,
): (
is_expanded: false,
),
(
index: 47,
generation: 1,
): (
is_expanded: true,
),
(
index: 26,
index: 41,
generation: 1,
): (
is_expanded: true,
@ -748,61 +676,139 @@
is_expanded: true,
),
(
index: 23,
index: 5,
generation: 1,
): (
is_expanded: true,
),
(
index: 74,
index: 91,
generation: 1,
): (
is_expanded: true,
),
(
index: 1,
index: 38,
generation: 1,
): (
is_expanded: true,
),
(
index: 66,
index: 8,
generation: 1,
): (
is_expanded: false,
),
(
index: 43,
generation: 1,
): (
is_expanded: false,
),
(
index: 41,
index: 58,
generation: 1,
): (
is_expanded: true,
),
(
index: 80,
index: 71,
generation: 1,
): (
is_expanded: true,
),
(
index: 57,
index: 46,
generation: 1,
): (
is_expanded: false,
),
(
index: 36,
index: 75,
generation: 1,
): (
is_expanded: false,
),
(
index: 53,
index: 24,
generation: 1,
): (
is_expanded: false,
),
(
index: 13,
generation: 1,
): (
is_expanded: true,
),
(
index: 50,
generation: 1,
): (
is_expanded: true,
),
(
index: 49,
generation: 1,
): (
is_expanded: false,
),
(
index: 69,
generation: 1,
): (
is_expanded: false,
),
(
index: 92,
generation: 1,
): (
is_expanded: true,
),
(
index: 9,
generation: 1,
): (
is_expanded: false,
),
(
index: 54,
generation: 1,
): (
is_expanded: true,
),
(
index: 81,
generation: 1,
): (
is_expanded: false,
),
(
index: 14,
generation: 1,
): (
is_expanded: true,
),
(
index: 72,
generation: 1,
): (
is_expanded: false,
),
(
index: 17,
generation: 1,
): (
is_expanded: false,
),
(
index: 27,
generation: 1,
): (
is_expanded: false,
),
(
index: 60,
generation: 1,
): (
is_expanded: false,
),
(
index: 10,
generation: 1,
): (
is_expanded: true,
@ -814,25 +820,19 @@
is_expanded: false,
),
(
index: 19,
index: 21,
generation: 1,
): (
is_expanded: false,
),
(
index: 30,
index: 55,
generation: 1,
): (
is_expanded: true,
),
(
index: 75,
generation: 1,
): (
is_expanded: false,
),
(
index: 20,
index: 52,
generation: 1,
): (
is_expanded: true,