diff --git a/client/src/scenes/combat.cryps.js b/client/src/scenes/combat.cryps.js index 192428c0..9112d2ad 100644 --- a/client/src/scenes/combat.cryps.js +++ b/client/src/scenes/combat.cryps.js @@ -153,10 +153,12 @@ class CombatCryps extends Phaser.Scene { this.drawCryps(game); this.registry.events.on('changedata', this.updateData, this); this.registry.set('crypStatusUpdate', false); + this.teams = game.teams.length; } updateData(parent, key, data) { if (key === 'game' && data) { + if (data.teams.length !== this.teams) this.scene.restart(data); const isAnimating = this.phase === 'animating'; this.game = data; if (isAnimating) return false; diff --git a/client/src/scenes/combat.hitbox.js b/client/src/scenes/combat.hitbox.js index 1a111bf2..392cbc0c 100644 --- a/client/src/scenes/combat.hitbox.js +++ b/client/src/scenes/combat.hitbox.js @@ -72,10 +72,9 @@ class CombatHitBox extends Phaser.Scene { this.game.events.emit('SEND_SKILL', game.id, activeSkill.cryp.id, c.id, activeSkill.skill.skill); } }; - const crypSpawn = group.children.entries.find(s => s.cryp.id === c.id); const team = c.account === account.id ? 0 : 1; - this.add.existing(new CrypHitBox(this, crypSpawn.iter, team, cback)); + if (crypSpawn) this.add.existing(new CrypHitBox(this, crypSpawn.iter, team, cback)); }); }); this.scene.moveBelow('Combat'); diff --git a/client/src/socket.js b/client/src/socket.js index 65e635a6..1f5960a3 100644 --- a/client/src/socket.js +++ b/client/src/socket.js @@ -270,7 +270,7 @@ function createSocket(events) { if (!account) events.loginPrompt(); if (process.env.NODE_ENV !== 'production') { - send({ method: 'account_login', params: { name: 'ntr', password: 'grepgrepgrep' } }); + // send({ method: 'account_login', params: { name: 'ntr', password: 'grepgrepgrep' } }); } return true; diff --git a/ops/package.json b/ops/package.json index c0955c0a..655b447d 100755 --- a/ops/package.json +++ b/ops/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "split:molecules": "cd molecules; csplit -f mol bulk.sdf /\$\$\$\$/ {*} --suppress-matched -z", + "split:molecules": "cd molecules; csplit -f mol bulk.sdf /\\$\\$\\$\\$/ {*} --suppress-matched -z", "migrate": "knex migrate:latest", "migrate:make": "knex migrate:make --", "test": "echo \"Error: no test specified\" && exit 1" diff --git a/server/WORKLOG.md b/server/WORKLOG.md index cd515e9f..1fd4e3a4 100644 --- a/server/WORKLOG.md +++ b/server/WORKLOG.md @@ -15,6 +15,12 @@ # WORK WORK ## NOW + +fix taunt +decay is op +siphon might have a prob + + cryp vbox update defensives in skill.rs diff --git a/server/src/game.rs b/server/src/game.rs index 64451d24..e554da88 100644 --- a/server/src/game.rs +++ b/server/src/game.rs @@ -392,7 +392,9 @@ impl Game { } fn get_targets(&self, skill: Skill, source: &Cryp, target_cryp_id: Uuid) -> Vec { - let target_team = self.teams.iter().find(|t| t.id == source.account).unwrap(); + let target_team = self.teams.iter() + .find(|t| t.cryps.iter().any(|c| c.id == target_cryp_id)) + .unwrap(); if let Some(t) = target_team.taunting() { return vec![t.id]; diff --git a/server/src/skill.rs b/server/src/skill.rs index bca93410..1e900425 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -289,7 +289,11 @@ impl Effect { _ => false, }, Effect::Strangle => skill != Skill::StrangleTick, - Effect::Strangling => true, + Effect::Strangling => match skill.category() { + Category::BlueTick => false, + Category::RedTick => false, + _ => true, + }, Effect::Banish => true, Effect::Injured => match skill.category() { Category::Green => true, @@ -948,7 +952,7 @@ fn decay(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Reso } fn decay_tick(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions) -> Resolutions { - let amount = source.blue_damage(); + let amount = source.blue_damage() / 2; target.deal_blue_damage(Skill::DecayTick, amount) .into_iter() .for_each(|e| results.push(Resolution::new(source, target).event(e))); diff --git a/server/src/spec.rs b/server/src/spec.rs index 538cc856..74394647 100644 --- a/server/src/spec.rs +++ b/server/src/spec.rs @@ -162,42 +162,42 @@ impl Spec { // Upgrades to HP Spec Spec::Hp => modified + base.pct(5), Spec::LifeI => modified + { - let mut mult = 10; + let mut mult: u64 = 10; if team_colours.red >= 5 { mult += 20 }; if team_colours.red >= 10 { mult += 30 }; if team_colours.red >= 20 { mult += 50 }; mult * team_colours.green as u64 }, Spec::RedShieldI => modified + { - let mut mult = 10; + let mut mult: u64 = 10; if team_colours.red >= 5 { mult += 20 }; if team_colours.red >= 10 { mult += 30 }; if team_colours.red >= 20 { mult += 50 }; mult * team_colours.red as u64 }, Spec::BlueShieldI => modified + { - let mut mult = 10; + let mut mult: u64 = 10; if team_colours.red >= 5 { mult += 20 }; if team_colours.red >= 10 { mult += 30 }; if team_colours.red >= 20 { mult += 50 }; - (mult * team_colours.blue) as u64 + mult * team_colours.blue as u64 }, Spec::LRSI => modified + { - let mut mult = 5; + let mut mult: u64 = 5; if team_colours.green >= 2 && team_colours.red >= 2 { mult += 5 }; if team_colours.green >= 5 && team_colours.red >= 5 { mult += 10 }; if team_colours.green >= 10 && team_colours.red >= 10 { mult += 20 }; mult * (team_colours.green + team_colours.red) as u64 }, Spec::LBSI => modified + { - let mut mult = 5; + let mut mult: u64 = 5; if team_colours.green >= 2 && team_colours.red >= 2 { mult += 5 }; if team_colours.green >= 5 && team_colours.red >= 5 { mult += 10 }; if team_colours.green >= 10 && team_colours.red >= 10 { mult += 20 }; mult * (team_colours.green + team_colours.red) as u64 }, Spec::RBSI => modified + { - let mut mult = 5; + let mut mult: u64 = 5; if team_colours.blue >= 2 && team_colours.red >= 2 { mult += 5 }; if team_colours.blue >= 5 && team_colours.red >= 5 { mult += 10 }; if team_colours.blue >= 10 && team_colours.red >= 10 { mult += 20 }; diff --git a/server/src/vbox.rs b/server/src/vbox.rs index 800d536b..26b8e18b 100644 --- a/server/src/vbox.rs +++ b/server/src/vbox.rs @@ -202,6 +202,7 @@ impl Var { Var::Silence => Some(Skill::Silence), // Var::Slay => Some(Skill::Slay), Var::Slow => Some(Skill::Slow), + Var::Siphon => Some(Skill::Siphon), Var::Snare => Some(Skill::Snare), Var::Strangle => Some(Skill::Strangle), Var::Strike => Some(Skill::Strike),