yeah pretty good.

This commit is contained in:
the me 2022-08-15 20:25:26 -07:00
parent 48c1a3af7a
commit 9cdac2b47e
4 changed files with 45 additions and 13 deletions

View File

@ -3,6 +3,7 @@ var i;
/*for (i=0; i<array_length(global.units[ARMY.US]); i++) { /*for (i=0; i<array_length(global.units[ARMY.US]); i++) {
c_inheritunit(2+i, 2, un.chara); c_inheritunit(2+i, 2, un.chara);
}*/ }*/
c_inheritunit(2, 2, un.chara); var chara = c_inheritunit(2, 2, un.chara);
c_addweapon(chara, wp.knife, true);
c_inheritunit(3, 2, un.kris); c_inheritunit(3, 2, un.kris);
selectedunit = noone; selectedunit = noone;

View File

@ -8,6 +8,9 @@ returnpos = new vec2(0, 0);
dir = DIR.NONE; dir = DIR.NONE;
attacks = 0; attacks = 0;
attacked = 0; attacked = 0;
inventory = [];
c_addweapon(id, wp.nothing);
equippedweapon = noone;
continuecombat = function(me, them) { continuecombat = function(me, them) {
//if stamina returnable = true stamina-- return true //if stamina returnable = true stamina-- return true

View File

@ -18,27 +18,27 @@ function unitstat(val_, name_, fullname_, desc_, replacements_) : stat(name_, fu
modifier = 0; modifier = 0;
} }
function statmod(stat__, amount_, operation_=add) { function statmod(stat__, val_, operation_=add) constructor {
name = stat__.name; name = stat__.name;
stat_ = stat__; stat_ = stat__;
amount = amount_; val = val_;
operation = operation_; operation = operation_;
} }
function add(val1, val2) { function add(val1, val2) {
return val1*val2; return val1 + val2;
} }
function sub(val1, val2) { function sub(val1, val2) {
return val1*val2; return val1 - val2;
} }
function mult(val1, val2) { function mult(val1, val2) {
return val1*val2; return val1 * val2;
} }
function divide(val1, val2) { function divide(val1, val2) {
return val1*val2; return val1 / val2;
} }
function modulo(val1, val2) { function modulo(val1, val2) {
return val1*val2; return val1 % val2;
} }
nu stat("hp", "health", "vitality"); nu stat("hp", "health", "vitality");

View File

@ -1,19 +1,43 @@
global.weapons = {}; global.weapons = {};
#macro wp global.weapons #macro wp global.weapons
function weapon(name_, description_, statmods) constructor { function weapon(name_, description_, type_, statmods=[]) constructor {
name = name_; name = name_;
description = description_; description = description_;
modifiers = {}; modifiers = {};
type = WPTYPE.SWORD;
var i; var i;
for (i=0; i<array_length(statmods); i++) { for (i=0; i<array_length(statmods); i++) {
modifiers[$statmods[i].name] = statmods[i]; modifiers[$statmods[i].name] = statmods[i];
} }
global.weapons[$name] = self;
} }
function c_addweapon(target, weapon_) { enum WPTYPE {
array_push(target.inventory, deep_copy(weapon_)); NULL,
SWORD,
LEAF,
GUN,
} }
function c_addweapon(target, weapon_, equip=false) {
//array_push(target.inventory, deep_copy(weapon_));
array_push(target.inventory, weapon_);
if equip {
target.equippedweapon = array_length(target.inventory)-1;
c_equipweapon(target, target.inventory[target.equippedweapon]);
}
}
function c_equipweapon(target, weapon_) {
log(target.data.str.val);
c_modifierreset(target);
log(target.data.str.val);
c_wpeval(target, weapon_);
log(target.data.str.val);
}
nu weapon("nothing", "it's literally nothing", WPTYPE.NULL);
nu weapon("knife", "bleed, bleed", WPTYPE.SWORD, [new statmod(st.str, 20, add)]);
function c_modifierreset(target) { function c_modifierreset(target) {
var dudes = variable_struct_get_names(target.data); var dudes = variable_struct_get_names(target.data);
var lads = variable_struct_get_names(st); var lads = variable_struct_get_names(st);
@ -21,8 +45,9 @@ function c_modifierreset(target) {
for (i=0; i<array_length(dudes); i++) { for (i=0; i<array_length(dudes); i++) {
while !array_contains(lads, dudes[i]) || dudes[i] == "hp" { while !array_contains(lads, dudes[i]) || dudes[i] == "hp" {
array_delete(dudes, i, 1); array_delete(dudes, i, 1);
if i >= array_length(dudes) break;
} }
if i > array_length(dudes) break; if i >= array_length(dudes) break;
target.data[$dudes[i]].val = target.data[$dudes[i]].cap; target.data[$dudes[i]].val = target.data[$dudes[i]].cap;
} }
} }
@ -33,7 +58,10 @@ function c_wpeval(target, weapon_) {
var i; var i;
for (i=0; i<array_length(dudes); i++) { for (i=0; i<array_length(dudes); i++) {
if array_contains(lads, dudes[i]) { if array_contains(lads, dudes[i]) {
target.data[$dudes[i]].val = weapon_[$dudes[i]].operation(target.data[$dudes[i]].val, weapon_[$dudes[i]].val); target.data[$dudes[i]].val = weapon_.modifiers[$dudes[i]].operation(
target.data[$dudes[i]].val,
weapon_.modifiers[$dudes[i]].val
);
} }
} }
} }