diff --git a/packages/junon-common/protocol/enum.proto b/packages/junon-common/protocol/enum.proto index f967d10e..18dbd24b 100644 --- a/packages/junon-common/protocol/enum.proto +++ b/packages/junon-common/protocol/enum.proto @@ -261,6 +261,8 @@ enum BuildingType { Nigiri = 265; PumpkinPie = 266; ImperialSpecialForcesArmor = 267; + Starnut = 268; + PointyStick = 269; } enum TerrainType { diff --git a/packages/junon-io/client/assets/images/pointy_stick.png b/packages/junon-io/client/assets/images/pointy_stick.png new file mode 100644 index 00000000..49bc7f7c Binary files /dev/null and b/packages/junon-io/client/assets/images/pointy_stick.png differ diff --git a/packages/junon-io/client/assets/images/strangenut.png b/packages/junon-io/client/assets/images/strangenut.png new file mode 100644 index 00000000..b31b231b Binary files /dev/null and b/packages/junon-io/client/assets/images/strangenut.png differ diff --git a/packages/junon-io/client/src/entities/equipments/hand/pointy_stick.js b/packages/junon-io/client/src/entities/equipments/hand/pointy_stick.js new file mode 100644 index 00000000..b2a90cf0 --- /dev/null +++ b/packages/junon-io/client/src/entities/equipments/hand/pointy_stick.js @@ -0,0 +1,21 @@ +const MeleeEquipment = require("./melee_equipment") +const Constants = require("./../../../../../common/constants.json") +const Protocol = require("./../../../../../common/util/protocol") + +class PointyStick extends MeleeEquipment { + + getSpritePath() { + return 'pointy_stick.png' + } + + getType() { + return Protocol.definition().BuildingType.PointyStick + } + + getConstantsTable() { + return "Equipments.PointyStick" + } + +} + +module.exports = PointyStick diff --git a/packages/junon-io/client/src/entities/equipments/index.js b/packages/junon-io/client/src/entities/equipments/index.js index 96f16c1e..4f4b8db8 100644 --- a/packages/junon-io/client/src/entities/equipments/index.js +++ b/packages/junon-io/client/src/entities/equipments/index.js @@ -6,6 +6,7 @@ const Constants = require("./../../../../common/constants.json") const Equipments = {} Equipments.LeadPipe = require("./hand/lead_pipe") Equipments.PlasmaBlade = require("./hand/plasma_blade") +Equipments.PointyStick = require("./hand/pointy_stick") Equipments.Mop = require("./hand/mop") Equipments.Pistol = require("./hand/pistol") Equipments.Shotgun = require("./hand/shotgun") diff --git a/packages/junon-io/client/src/entities/foods/index.js b/packages/junon-io/client/src/entities/foods/index.js index 0b1bab34..e920e5ca 100644 --- a/packages/junon-io/client/src/entities/foods/index.js +++ b/packages/junon-io/client/src/entities/foods/index.js @@ -30,6 +30,7 @@ Foods.Cooked.Pumpkin = require("./pumpkin") Foods.Cooked.Fish = require("./fish") Foods.Cooked.Nigiri = require("./nigiri") Foods.Cooked.PumpkinPie = require("./pumpkin_pie") +Foods.Cooked.Starnut = require("./starnut") Foods.Drugs = {} Foods.Drugs.FirstAidKit = require("./first_aid_kit") diff --git a/packages/junon-io/client/src/entities/foods/starnut.js b/packages/junon-io/client/src/entities/foods/starnut.js new file mode 100644 index 00000000..7891356a --- /dev/null +++ b/packages/junon-io/client/src/entities/foods/starnut.js @@ -0,0 +1,21 @@ +const BaseFood = require("./base_food") +const Constants = require("./../../../../common/constants.json") +const Protocol = require("./../../../../common/util/protocol") + +class Starnut extends BaseFood { + + getSpritePath() { + return 'starnut.png' + } + + getType() { + return Protocol.definition().BuildingType.Starnut + } + + getConstantsTable() { + return "Foods.Starnut" + } + +} + +module.exports = Starnut diff --git a/packages/junon-io/client/src/entities/game.js b/packages/junon-io/client/src/entities/game.js index 2ce99b07..cb801cb1 100644 --- a/packages/junon-io/client/src/entities/game.js +++ b/packages/junon-io/client/src/entities/game.js @@ -1400,8 +1400,8 @@ class Game { window.textureSetupTime = (new Date()).getTime() // PIXI.settings.SCALE_MODE = PIXI.SCALE_MODES.NEAREST - - let tempAssets = ['displacement_map.png', 'squid_lord_heart.png', 'squid_staff.png', 'fries.png', 'energy_drink.png', 'alien_juice.png', 'rocket_launcher.png', 'scar_17_by_px.png', 'bowl_by_px.png', 'potato_soup_by_px.png', 'miso_soup_by_px.png', 'slime_broth_by_px.png', 'bomber_turret_by_px.png', 'firebat.png', 'plasma_blade.png', 'raven.png', 'starberries.png', 'car.png', 'bricks_texture.png', 'checker_texture.png', 'noise_texture.png', 'x_texture.png', 'xchecker_texture.png', 'nihonshu.png', 'pumpkin.png', 'pumpkin_plant.png','pumpkin_seed.png', 'rice.png', 'rice_plant.png', 'rice_seed.png', 'fish.png', 'nigiri.png', 'katana_reskin.png', 'pumpkin_pie.png', 'imperial_special_forces_armor.png'] + + let tempAssets = ['displacement_map.png', 'squid_lord_heart.png', 'squid_staff.png', 'fries.png', 'energy_drink.png', 'alien_juice.png', 'rocket_launcher.png', 'scar_17_by_px.png', 'bowl_by_px.png', 'potato_soup_by_px.png', 'miso_soup_by_px.png', 'slime_broth_by_px.png', 'bomber_turret_by_px.png', 'firebat.png', 'plasma_blade.png', 'raven.png', 'starberries.png', 'car.png', 'bricks_texture.png', 'checker_texture.png', 'noise_texture.png', 'x_texture.png', 'xchecker_texture.png', 'nihonshu.png', 'pumpkin.png', 'pumpkin_plant.png','pumpkin_seed.png', 'rice.png', 'rice_plant.png', 'rice_seed.png', 'fish.png', 'nigiri.png', 'katana_reskin.png', 'pumpkin_pie.png', 'imperial_special_forces_armor.png', 'strangenut.png', 'pointy_stick.png'] tempAssets.forEach((asset) => { PIXI.Texture.addToCache(PIXI.Texture.fromImage('/assets/images/' + asset), asset) }) diff --git a/packages/junon-io/common/constants.json b/packages/junon-io/common/constants.json index d86b3dd6..9a746c07 100644 --- a/packages/junon-io/common/constants.json +++ b/packages/junon-io/common/constants.json @@ -3158,6 +3158,26 @@ "upgrade": {}, "description": "Strange berries from alien bushes." }, + "Star Nut": { + "width": 21, + "height": 14, + "cost": { + "gold": 250 + }, + "stats": { + "food": 10, + "health": 15 + }, + "sprite": { + "position": { + "x": 64, + "y": 0 + }, + "rotation": 90 + }, + "upgrade": {}, + "description": "A strange brown nut. Can it be planted?" + }, "Fish": { "width": 32, "height": 32, @@ -3830,6 +3850,24 @@ }, "description": "Strong blade made of plasma" }, + "PointyStick": { + "parent": "Equipments.MeleeEquipment", + "isWeapon": true, + "cost": { + "gold": 250 + }, + "categories": {"melee_damage": true}, + "isAnimatable": true, + "stats": { + "damage": 14, + "range": 55, + "meleeRange": 55 + }, + "requirements": { + "Wood": 5 + }, + "description": "A weak but pointy stick" + }, "AssassinsKnife": { "parent": "Equipments.MeleeEquipment", "isWeapon": true, diff --git a/packages/junon-io/server/entities/equipments/hand/pointy_stick.js b/packages/junon-io/server/entities/equipments/hand/pointy_stick.js new file mode 100644 index 00000000..cc7bafb5 --- /dev/null +++ b/packages/junon-io/server/entities/equipments/hand/pointy_stick.js @@ -0,0 +1,20 @@ +const MeleeEquipment = require("./melee_equipment") + +const Protocol = require('../../../../common/util/protocol') +const Constants = require("../../../../common/constants.json") + + +class PointyStick extends MeleeEquipment { + onEquipmentConstructed() { + } + + getType() { + return Protocol.definition().BuildingType.PointyStick + } + + getConstantsTable() { + return "Equipments.PointyStick" + } +} + +module.exports = PointyStick \ No newline at end of file diff --git a/packages/junon-io/server/entities/equipments/index.js b/packages/junon-io/server/entities/equipments/index.js index 623ce3dc..b25fca70 100644 --- a/packages/junon-io/server/entities/equipments/index.js +++ b/packages/junon-io/server/entities/equipments/index.js @@ -9,6 +9,7 @@ Equipments.Pistol = require("./hand/pistol") Equipments.Shotgun = require("./hand/shotgun") Equipments.LeadPipe = require("./hand/lead_pipe") Equipments.PlasmaBlade = require("./hand/plasma_blade") +Equipments.PointyStick = require("./hand/pointy_stick") Equipments.FireExtinguisher = require("./hand/fire_extinguisher") Equipments.Syringe = require("./hand/syringe") Equipments.FlameThrower = require("./hand/flame_thrower") diff --git a/packages/junon-io/server/entities/foods/index.js b/packages/junon-io/server/entities/foods/index.js index decbbd0c..fec35f79 100644 --- a/packages/junon-io/server/entities/foods/index.js +++ b/packages/junon-io/server/entities/foods/index.js @@ -25,6 +25,7 @@ Foods.MisoSoup = require("./miso_soup") Foods.PotatoSoup = require("./potato_soup") Foods.SlimeBroth = require("./slime_broth") Foods.Starberries = require("./starberries") +Foods.Starnut = require("./starnut") Foods.Pumpkin = require("./pumpkin") Foods.Rice = require("./rice") Foods.Fish = require("./fish") diff --git a/packages/junon-io/server/entities/foods/starnut.js b/packages/junon-io/server/entities/foods/starnut.js new file mode 100644 index 00000000..1b208066 --- /dev/null +++ b/packages/junon-io/server/entities/foods/starnut.js @@ -0,0 +1,18 @@ +const BaseFood = require("./base_food") + +const Constants = require("./../../../../common/constants.json") +const Protocol = require("./../../../../common/util/protocol") + +class Starnut extends BaseFood { + + getType() { + return Protocol.definition().BuildingType.Starnut + } + + getConstantsTable() { + return "Foods.Starnut" + } + +} + +module.exports = Starnut diff --git a/packages/junon-io/server/entities/sector.js b/packages/junon-io/server/entities/sector.js index 43319875..022df0b0 100644 --- a/packages/junon-io/server/entities/sector.js +++ b/packages/junon-io/server/entities/sector.js @@ -511,7 +511,9 @@ class Sector { } initDefaultSellables() { - let itemKlasses = [Ores.Sand, Ores.Wood, Buildings.CoffeeSeed, Buildings.WheatSeed, Buildings.PotatoSeed, Buildings.SunflowerSeed, Buildings.BlueSeed, Buildings.PoppySeed,Buildings.PumpkinSeed,Buildings.RiceSeed, Foods.Starberries, Foods.Fish, Mobs.Chicken, Mobs.Monkey, Mobs.Cat, Mobs.CleanBot, Mobs.Car, Equipments.CombatArmor, Equipments.SantaHat, Equipments.NameTag] + + let itemKlasses = [Ores.Sand, Ores.Wood, Buildings.CoffeeSeed, Buildings.WheatSeed, Buildings.PotatoSeed, Buildings.SunflowerSeed, Buildings.BlueSeed, Buildings.PoppySeed,Buildings.PumpkinSeed,Buildings.RiceSeed, Foods.Starberries, Foods.Fish, Mobs.Chicken, Mobs.Monkey, Mobs.Cat, Mobs.CleanBot, Mobs.Car, Equipments.CombatArmor, Equipments.SantaHat, Equipments.NameTag, Foods.Starnut] + itemKlasses.forEach((klass) => { let group = klass.prototype.isMob() ? "mob" : "item" this.sellables[klass.prototype.getTypeName()] = { group: group, type: klass.prototype.getType(), cost: klass.getCost() }