diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2017-11-04 22:42:24 -0400 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2017-11-04 22:42:24 -0400 |
| commit | 5d77d8475af7aff27eb026a4b56065387c024165 (patch) | |
| tree | ccdd061e5654288ab53134be52e8b1ef194d5ebc /gamemode/inventorysystem/skills/sh_skillcommon.lua | |
| parent | 40080dcfde028c64c4f6f51792b928ee91677bc6 (diff) | |
| download | artery-5d77d8475af7aff27eb026a4b56065387c024165.tar.gz artery-5d77d8475af7aff27eb026a4b56065387c024165.tar.bz2 artery-5d77d8475af7aff27eb026a4b56065387c024165.zip | |
Massive changes
* New error messages for missing dependencies
* Removed useless art_serverchanger entity
* Added a sweet ascii logo
* Added Skills
* Minor fixes to cl_inventory tracker
* Changed a few prints to use logging module
Diffstat (limited to 'gamemode/inventorysystem/skills/sh_skillcommon.lua')
| -rw-r--r-- | gamemode/inventorysystem/skills/sh_skillcommon.lua | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gamemode/inventorysystem/skills/sh_skillcommon.lua b/gamemode/inventorysystem/skills/sh_skillcommon.lua new file mode 100644 index 0000000..d48fb98 --- /dev/null +++ b/gamemode/inventorysystem/skills/sh_skillcommon.lua @@ -0,0 +1,68 @@ +--[[ + Common functions since skills are a special inventory, adding skills need to be a special item +]] +local itm = nrequire("item.lua") + +--Common things +--Make sure items have a "name" and "ammt" attribute +local item = {} + +item.Name = "Skill" + +item.isskill = true + +item.Serialize = function(self) + return util.TableToJSON({ + name = self.name, + ammt = self.ammt + }) +end + +item.DeSerialize = function(self,data) + local tbl = util.JSONToTable(data) + tbl.isskill = true + return tbl +end + +itm.RegisterItem(item) + +local pmeta = FindMetaTable("Player") + +function pmeta:AddSkill(name, ammt) + local item = itm.GetItemByName("Skill") + item.name = name + item.ammt = ammt + self:GiveItem(item) +end + +local lib = {} +local skills = {} +--Skillname is a table of {string_group,string_name} +function lib.RegisterSkill(skillname) + print("funcs.RegisterSkill called with") + PrintTable(skillname) + local group,name = skillname[1],skillname[2] + if not skills[group] then + skills[group] = {} + end + local alin = false + for k,v in pairs(skills[group]) do + if v == name then + alin = true + break + end + end + if alin then + log.warn("Re-registering skill: " .. skillname) + else + skills[group][#skills[group] + 1] = name + end + print("After registering skill, skills is") + PrintTable(skills) +end + +function lib.SkillList() + return skills +end + +return lib |
