Add project code
This commit is contained in:
80
scripts/get_damaged/get_damaged.gml
Normal file
80
scripts/get_damaged/get_damaged.gml
Normal file
@@ -0,0 +1,80 @@
|
||||
function get_damaged(_dmg_obj, _iframes = false, _hurt_sprite = true){
|
||||
var _hit_confirmed = false;
|
||||
// Exit iframe timer
|
||||
if _iframes && iframes_timer > 0 {
|
||||
iframes_timer--;
|
||||
|
||||
if iframes_timer mod 5 == 0
|
||||
{
|
||||
if image_alpha == 1 {
|
||||
image_alpha = 0;
|
||||
} else {
|
||||
image_alpha = 1;
|
||||
}
|
||||
}
|
||||
|
||||
hp = clamp(hp, 0, max_hp);
|
||||
return _hit_confirmed;
|
||||
}
|
||||
|
||||
if _iframes {
|
||||
image_alpha = 1;
|
||||
}
|
||||
|
||||
if place_meeting(x, y, _dmg_obj) || (_dmg_obj != o_all_hurt && place_meeting(x, y, o_all_hurt)) {
|
||||
var _inst_list = ds_list_create();
|
||||
|
||||
instance_place_list(x, y, _dmg_obj, _inst_list, false);
|
||||
|
||||
if _dmg_obj != o_all_hurt {
|
||||
instance_place_list(x, y, o_all_hurt, _inst_list, false);
|
||||
}
|
||||
|
||||
var _list_size = ds_list_size(_inst_list);
|
||||
|
||||
|
||||
|
||||
for (var i = 0; i < _list_size; i++) {
|
||||
var _inst = ds_list_find_value(_inst_list, i);
|
||||
|
||||
if _iframes || ds_list_find_index(dmg_list, _inst) == -1 {
|
||||
if !_iframes {
|
||||
ds_list_add(dmg_list, _inst);
|
||||
}
|
||||
|
||||
hp -= _inst.damage;
|
||||
_hit_confirmed = true;
|
||||
_inst.hit_confirmed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if _iframes && _hit_confirmed {
|
||||
iframes_timer = iframes_number;
|
||||
}
|
||||
|
||||
ds_list_destroy( _inst_list);
|
||||
|
||||
if _hurt_sprite {
|
||||
if hp > 0 && sprite_index != sprites[3] {
|
||||
sprite_index = sprites[3];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !_iframes {
|
||||
var _dmg_list_size = ds_list_size(dmg_list);
|
||||
for (var i = 0; i < _dmg_list_size; i++) {
|
||||
var _inst = ds_list_find_value(dmg_list, i);
|
||||
|
||||
if !instance_exists(_inst) || !place_meeting(x, y, _inst) {
|
||||
ds_list_delete(dmg_list, i);
|
||||
i--;
|
||||
_dmg_list_size--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hp = clamp(hp, 0, max_hp);
|
||||
|
||||
return _hit_confirmed;
|
||||
}
|
||||
13
scripts/get_damaged/get_damaged.yy
generated
Normal file
13
scripts/get_damaged/get_damaged.yy
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"$GMScript":"v1",
|
||||
"%Name":"get_damaged",
|
||||
"isCompatibility":false,
|
||||
"isDnD":false,
|
||||
"name":"get_damaged",
|
||||
"parent":{
|
||||
"name":"Scripts",
|
||||
"path":"folders/Scripts.yy",
|
||||
},
|
||||
"resourceType":"GMScript",
|
||||
"resourceVersion":"2.0",
|
||||
}
|
||||
Reference in New Issue
Block a user