move you self

This commit is contained in:
the me 2022-08-16 15:28:01 -07:00
parent 9cdac2b47e
commit 4d394955fa
18 changed files with 127 additions and 22 deletions

View file

@ -0,0 +1,15 @@
function c_getstats(target) {
var dudes = variable_struct_get_names(target.data);
var lads = variable_struct_get_names(st);
var chaps = [];
var i;
for (i=0; i<array_length(dudes); i++) {
while !array_contains(lads, dudes[i]) || dudes[i] == "hp" {
array_delete(dudes, i, 1);
if i >= array_length(dudes) break;
}
if i >= array_length(dudes) break;
array_push(chaps, target.data[$dudes[i]]);
}
return chaps;
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "Scripts",
"path": "folders/Scripts.yy",
},
"resourceVersion": "1.0",
"name": "c_getstats",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -0,0 +1,6 @@
function c_moveunit(targetunit, destination) {
array_remove(c_gettile(targetunit.pos.x, targetunit.pos.y).contents, targetunit);
array_push(destination.contents, targetunit);
targetunit.pos.x = destination.x;
targetunit.pos.y = destination.y;
}

View file

@ -0,0 +1,12 @@
{
"isDnD": false,
"isCompatibility": false,
"parent": {
"name": "Scripts",
"path": "folders/Scripts.yy",
},
"resourceVersion": "1.0",
"name": "c_moveunit",
"tags": [],
"resourceType": "GMScript",
}

View file

@ -1,8 +1,9 @@
function c_selectunit(unitobject) {
if unitobject.waiting return false
unitobject.state = st_moving;
unitobject.drawstate = st_movingdraw;
unitobject.returnpos = new vec2(unitobject.pos.x, unitobject.pos.y);
var mov = 2//DONT
var mov = unitobject.data.mov.val;
var i, j;
for (i=-mov; i<=mov; i++) {
for (j=-mov; j<=mov; j++) {
@ -12,6 +13,7 @@ function c_selectunit(unitobject) {
}
}
ARTICULATOR.selectedunit = unitobject;
return unitobject;
}
function c_deselectunit(unitobject) {

View file

@ -1,9 +1,9 @@
function st_moving() {
var mov = 2;
var mov = data.mov.val;
c_input();
hspd = lerp(hspd, (right-left)*.05, .4);
vspd = lerp(vspd, (down-up)*.05, .4);
//if !stop dir = DIR.NONE;
if !stop dir = DIR.NONE;
if left dir = DIR.LEFT;
if down dir = DIR.DOWN;
if up dir = DIR.UP;
@ -47,7 +47,7 @@ function st_moving() {
//var rng = [1];
var guy = c_gettile(x, y, true);
var hitting = noone;
if guy != noone {
if guy != noone && stop {
switch dir {
case DIR.LEFT:
hitting = c_gettile(guy.x-1, guy.y);
@ -96,6 +96,11 @@ function st_moving() {
if back {
c_deselectunit(id);
}
if dir == DIR.NONE && select {
c_moveunit(id, c_gettile(x, y, true));
waiting = true;
c_deselectunit(id);
}
/*if x < (pos.x-mov)*ts.x {
x = (pos.x-mov)*ts.x;
} else if x > (pos.x+mov+1)*ts.x {

View file

@ -44,4 +44,6 @@ function modulo(val1, val2) {
nu stat("hp", "health", "vitality");
nu stat("str", "strength", "physical power");
nu stat("def", "defense", "physical defense");
nu stat("spd", "speed", "avoid and follow-up");
nu stat("spd", "speed", "avoid and follow-up");
nu stat("hit", "hit rate", "chance to hit");
nu stat("mov", "movement", "distance travelable");

View file

@ -7,7 +7,7 @@ global.map = [
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(u, u, [c_lime], [new statmod(st.def, 5, add)]), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
[new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata(), new tiledata()],
@ -26,8 +26,13 @@ function c_informtiles() {
c_informtiles();
global.tilesize = new vec2(32, 32);
function tiledata(passable_=true) constructor {
passable = passable;
contents = [];
overlays = [];
function tiledata(passable_=true, contents_=[], overlays_=[], statmods=[]) constructor {
passable = passable_;
contents = contents_;
overlays = overlays_;
modifiers = {};
var i;
for (i=0; i<array_length(statmods); i++) {
modifiers[$statmods[i].name] = statmods[i];
}
}

View file

@ -29,7 +29,7 @@ function unit(personaldata_, classdata_, stats_) constructor {
global.unitdata[$name] = self;
}
nu unit(mydata, mydata, [st.hp.add(92), st.str.add(20), st.def.add(20), st.spd.add(5)]);
nu unit(mydata, mydata, [st.hp.add(92), st.str.add(20), st.def.add(10), st.spd.add(5), st.mov.add(4), st.hit.add(0)]);
mydata = {
name: "kris",
@ -39,7 +39,7 @@ mydata = {
up: s_guy2,
down: s_guy2,
}
nu unit(mydata, mydata, [st.hp.add(92), st.str.add(20), st.def.add(20), st.spd.add(5)]);
nu unit(mydata, mydata, [st.hp.add(110), st.str.add(20), st.def.add(10), st.spd.add(5), st.mov.add(6), st.hit.add(0)]);
function archetypedata() constructor {
//PERSONALDATA AND CLASSDATA ARE THE SAME THINGS

View file

@ -3,8 +3,8 @@ global.weapons = {};
function weapon(name_, description_, type_, statmods=[]) constructor {
name = name_;
description = description_;
modifiers = {};
type = WPTYPE.SWORD;
modifiers = {};
var i;
for (i=0; i<array_length(statmods); i++) {
modifiers[$statmods[i].name] = statmods[i];
@ -36,7 +36,8 @@ function c_equipweapon(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)]);
nu weapon("knife", "bleed, bleed", WPTYPE.SWORD, [new statmod(st.str, 20, add), new statmod(st.hit, 100, add)]);
nu weapon("iron sword", "made of a cringe material", WPTYPE.SWORD, [new statmod(st.str, 6, add), new statmod(st.hit, 90, add)]);
function c_modifierreset(target) {
var dudes = variable_struct_get_names(target.data);