mirror of
https://gitlab.com/MaddoScientisto/cirnofarm.git
synced 2026-06-01 10:15:46 +00:00
Self contained weapons
This commit is contained in:
parent
e2ab6ee3e9
commit
9afa5195b9
4 changed files with 54 additions and 20 deletions
|
|
@ -6,7 +6,7 @@ version 2
|
|||
:: sfx/
|
||||
:: gfx/0.gfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yOCAxMDozODoyMiIscmV2aXNpb249MTIxNV1dbHo0AP0LAABfQwAA8xR7WzBdPXtibXA9cHh1
|
||||
NC0yOCAxMzowNDo1MCIscmV2aXNpb249MTIyMl1dbHo0AD0MAACaQwAA8xR7WzBdPXtibXA9cHh1
|
||||
AEMgEBAE8PAsZmxhZ3M9MCxwYW5feAgA2nk9MCx6b29tPTExfSwyAPEIrxsj3gN_A94j3gP_CRNu
|
||||
A04TbiNOA34TAP8DjgM_A04DLiN_Iy4DngP_FAMuXgAd8AnwRU2ALSYtUB1mHQUgHYYNFQAdlh0V
|
||||
DaYEAMMNFQANlh0FEL0F8BNYAB8zWAAV8CpQRIAUTx8UUA8Ujx8EQC8UTx8kQA8UHx9EDg8ZBEAP
|
||||
|
|
@ -59,15 +59,16 @@ MAgGAIEQCAAYUBhQGAoABBYAPzgACDcBHw8yAOXwFBC-GCAOtA4ADtQeRDxEHiQcPxwcJB4kDF0M
|
|||
JB4UDA1cDQwUCAAyDD0MCgARHQIACAoA0SQMHRwdDCQeJBw9HCRFAJ-UDgAOtA4gvhC-AB8PMgD-
|
||||
S7cTnxBQDhwOLA4MDggAIy4MEAAACAAIGgAqPC4YACIMHgoAMWAODCIAj3AeTA6AXvAUiAAe_Q8V
|
||||
VYAFVgVwBV8QBXAFXgVwBQY_BgVwBRYeFgVwBVYEAE_AVfAlTAEfDzIA-xnwCCHBEAGMDxEbDA8c
|
||||
IQx-EBwPHAEQES8QhwnyBTE-EBGAAS4BoAEeDxwBkAEeDQGQDwAQDQUAXwGwMfAKogAfDzIA----
|
||||
----------------------------------9zUD0xMX19
|
||||
IQx-EBwPHAEQES8QhwnyBTE-EBGAAS4BoAEeDxwBkAEeDQGQDwAQDQUAXwGwMfAKcAAe8B82KcAa
|
||||
GRAqUCoZAAoZUEo5QAYZChYJBhoWMAkKKQoZCgYZBhBqCSoJFiAWChYKCQCvMDYZRlCGkCbwBkEB
|
||||
Hw8yAP--------------------------------------QVA9MTF9fQ==
|
||||
:: gfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yOCAxMDozODoyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yOCAxMzowNDo1MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: map/0.map
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yOCAxMDozODoyMiIscmV2aXNpb249MTI0OV1dbHo0ALgFAAAUQgAA8Ah7e2JtcD11c2VyZGF0
|
||||
NC0yOCAxMzowNDo1MCIscmV2aXNpb249MTI1NV1dbHo0ALgFAAAUQgAA8Ah7e2JtcD11c2VyZGF0
|
||||
YSgiaTE2IiwzMgMALyIwAQD-gy4xMAwADwEAoiozMAEAHjQUAAwBADU1ODABAD80ODABACsvNDAz
|
||||
ACYfNnwABD8xMzCAAEoPXAAaBAQADwEANQ9QACEvMzCAAG0PAQC6KjQ4CAEPBAMHDiAADwEANgSA
|
||||
AB8zYAEALzMwAQBOLzQ4GAAPDiQADwEAOQ5oAA8BAHIeM4ABD4AAYA8BAP_EBLQDDhAADwEAUwxw
|
||||
|
|
@ -96,11 +97,11 @@ AQABL2UwAQAuLzE4BAATD4AA-0YvMDgEABQfZQQAIA8BABEfOAQAFB9lBAAeDwkhkkpiYWNrCSFk
|
|||
MTM3LjE2AQAVN4YQLzEyhhARUG09MX19
|
||||
:: map/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yOCAxMDozODoyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yOCAxMzowNDo1MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: sfx/0.sfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yOCAxMDozODoyMiIscmV2aXNpb249OTcyXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
NC0yOCAxMzowNDo1MCIscmV2aXNpb249OTc4XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
||||
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
||||
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
||||
|
|
@ -109,14 +110,14 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J
|
|||
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
|
||||
:: sfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yOCAxMDozODoyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yOCAxMzowNDo1MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: main.lua
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-28 10:38:22",revision=1259]]
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-28 13:04:50",revision=1265]]
|
||||
include("/cirnofarm/src/game.lua")
|
||||
:: .info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yOCAxMDozODoyMyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
NC0yOCAxMzowNDo1MCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
|
||||
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
|
||||
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@ Cirno.weapon=nil
|
|||
function Cirno:new(x,y)
|
||||
local obj = Actor:new(x,y)
|
||||
|
||||
local weapon = weapons_manager.make_weapon(weapons_manager.get_weapons().ICE_BLASTER)
|
||||
|
||||
obj.weapon = weapon
|
||||
|
||||
return setmetatable(obj, {__index=self})
|
||||
end
|
||||
|
||||
|
|
@ -32,8 +36,7 @@ function Cirno:update()
|
|||
self:move()
|
||||
|
||||
if (btn(4)) then
|
||||
--create_bullet(self.x,self.y,self.move_x,self.move_Y)
|
||||
weapons_manager.shoot(self.weapon,self.x+8,self.y+8,self.move_x,self.move_y)
|
||||
self.weapon:shoot(self.x+8,self.y+8,self.move_x,self.move_y)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -60,8 +63,8 @@ M = {}
|
|||
function M.init()
|
||||
--return cirno_init()
|
||||
local c = Cirno:new(128,128)
|
||||
local weapon = weapons_manager.get_weapons().ICE_BLASTER
|
||||
c.weapon = weapon
|
||||
--local weapon = weapons_manager.get_default_weapon()
|
||||
|
||||
return c
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -99,8 +99,8 @@ function _update()
|
|||
{"text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false}},
|
||||
{"text_box",{text=string.format("%.4f %dfps",stat(1),stat(7)),margin=2,stroke=true,active=false,hover=false}},
|
||||
{"text_box",{text=string.format("Bullets: %d", count(bullets)),margin=2,stroke=true,active=false,hover=false}},
|
||||
{"text_box",{text=string.format("Weapon: %s", cirnoInstance.weapon.name),margin=2,stroke=true,active=false,hover=false}},
|
||||
{"sprite_box",{sprite=cirnoInstance.weapon.spriteIndex,margin=2,stroke=true,active=false,hover=false}},
|
||||
{"text_box",{text=string.format("Weapon: %s", cirnoInstance.weapon.data.name),margin=2,stroke=true,active=false,hover=false}},
|
||||
{"sprite_box",{sprite=cirnoInstance.weapon.data.spriteIndex,margin=2,stroke=true,active=false,hover=false}},
|
||||
}})
|
||||
|
||||
--pgui:component("text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false})
|
||||
|
|
|
|||
|
|
@ -23,6 +23,12 @@ local weapons_list = {
|
|||
--shoot=function(self,x,y,dir_x,dir_y)
|
||||
-- create_bullet(self.bullet, x, y, dir_x, dir_y)
|
||||
--end
|
||||
},
|
||||
SPAGHETTI={
|
||||
name = "Spaghetti",
|
||||
rate_of_fire = 0.2,
|
||||
bullet=bullets_list.BASIC,
|
||||
spriteIndex=105,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -31,7 +37,25 @@ function shoot(weapon, x, y, dir_x, dir_y)
|
|||
create_bullet(weapon.bullet, x, y, dir_x, dir_y)
|
||||
end
|
||||
|
||||
-- local particles = {}
|
||||
-- Weapon
|
||||
|
||||
Weapon = {}
|
||||
|
||||
function Weapon:new(data)
|
||||
local we = {
|
||||
data = data,
|
||||
timer = 0
|
||||
}
|
||||
|
||||
return setmetatable(we, {__index=self})
|
||||
end
|
||||
|
||||
function Weapon:shoot(x,y,dir_x,dir_y)
|
||||
|
||||
create_bullet(self.data.bullet, x, y, dir_x, dir_y)
|
||||
end
|
||||
|
||||
-- Particle
|
||||
|
||||
Particle = Actor:new()
|
||||
Particle.life=4
|
||||
|
|
@ -125,9 +149,9 @@ function create_bullet(bullet, new_x, new_y, dir_x, dir_y)
|
|||
|
||||
end
|
||||
|
||||
function M.shoot(weapon, new_x, new_y, dir_x, dir_y)
|
||||
return shoot(weapon, new_x,new_y,dir_x,dir_y)
|
||||
end
|
||||
--function M.shoot(weapon, new_x, new_y, dir_x, dir_y)
|
||||
-- return shoot(weapon, new_x,new_y,dir_x,dir_y)
|
||||
--end
|
||||
|
||||
function M.get_weapons()
|
||||
return weapons_list
|
||||
|
|
@ -165,4 +189,10 @@ function M.debug_draw()
|
|||
--print(string.format("Bullets: %d", count(bullets)), 0,32,1)
|
||||
end
|
||||
|
||||
function M.make_weapon(bullet_type)
|
||||
return Weapon:new(bullet_type)
|
||||
--local w = Weapon:new(weapons_list.SPAGHETTI)
|
||||
--return w
|
||||
end
|
||||
|
||||
return M
|
||||
Loading…
Add table
Add a link
Reference in a new issue