mirror of
https://github.com/OpenMW/openmw.git
synced 2025-12-19 10:23:15 +00:00
Merge branch 'creeperbutitslua' into 'master'
Add barter gold bindings Closes #2903 See merge request OpenMW/openmw!5046
This commit is contained in:
commit
dba8b21c75
3 changed files with 32 additions and 1 deletions
|
|
@ -82,7 +82,7 @@ message(STATUS "Configuring OpenMW...")
|
||||||
set(OPENMW_VERSION_MAJOR 0)
|
set(OPENMW_VERSION_MAJOR 0)
|
||||||
set(OPENMW_VERSION_MINOR 51)
|
set(OPENMW_VERSION_MINOR 51)
|
||||||
set(OPENMW_VERSION_RELEASE 0)
|
set(OPENMW_VERSION_RELEASE 0)
|
||||||
set(OPENMW_LUA_API_REVISION 108)
|
set(OPENMW_LUA_API_REVISION 109)
|
||||||
set(OPENMW_POSTPROCESSING_API_REVISION 4)
|
set(OPENMW_POSTPROCESSING_API_REVISION 4)
|
||||||
|
|
||||||
set(OPENMW_VERSION_COMMITHASH "")
|
set(OPENMW_VERSION_COMMITHASH "")
|
||||||
|
|
|
||||||
|
|
@ -421,6 +421,24 @@ namespace MWLua
|
||||||
return ptr.getClass().getCapacity(ptr);
|
return ptr.getClass().getCapacity(ptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
actor["getBarterGold"] = [](const Object& object) -> int {
|
||||||
|
const MWWorld::Ptr ptr = object.ptr();
|
||||||
|
return ptr.getClass().getCreatureStats(ptr).getGoldPool();
|
||||||
|
};
|
||||||
|
|
||||||
|
actor["setBarterGold"] = [context](const Object& object, int gold) {
|
||||||
|
if (gold < 0)
|
||||||
|
throw std::runtime_error("Barter gold must be positive");
|
||||||
|
if (dynamic_cast<const GObject*>(&object) == nullptr && dynamic_cast<const SelfObject*>(&object) == nullptr)
|
||||||
|
throw std::runtime_error("Can only be used in global scripts or in local scripts on self.");
|
||||||
|
context.mLuaManager->addAction(
|
||||||
|
[obj = Object(object), gold] {
|
||||||
|
const MWWorld::Ptr ptr = obj.ptr();
|
||||||
|
ptr.getClass().getCreatureStats(ptr).setGoldPool(gold);
|
||||||
|
},
|
||||||
|
"SetBarterGoldAction");
|
||||||
|
};
|
||||||
|
|
||||||
actor["_onHit"] = [context](const SelfObject& self, const sol::table& options) {
|
actor["_onHit"] = [context](const SelfObject& self, const sol::table& options) {
|
||||||
sol::optional<sol::table> damageLua = options.get<sol::optional<sol::table>>("damage");
|
sol::optional<sol::table> damageLua = options.get<sol::optional<sol::table>>("damage");
|
||||||
std::map<std::string, float> damageCpp;
|
std::map<std::string, float> damageCpp;
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,19 @@
|
||||||
-- @param openmw.core#GameObject actor
|
-- @param openmw.core#GameObject actor
|
||||||
-- @return #number
|
-- @return #number
|
||||||
|
|
||||||
|
---
|
||||||
|
-- Get the actor's current barter gold.
|
||||||
|
-- @function [parent=#Actor] getBarterGold
|
||||||
|
-- @param openmw.core#GameObject actor
|
||||||
|
-- @return #number
|
||||||
|
|
||||||
|
---
|
||||||
|
-- Set the actor's current barter gold.
|
||||||
|
-- Available in global and local scripts. Can only be used on self in local scripts.
|
||||||
|
-- @function [parent=#Actor] setBarterGold
|
||||||
|
-- @param openmw.core#GameObject actor
|
||||||
|
-- @param #number amount
|
||||||
|
|
||||||
---
|
---
|
||||||
-- Check if the given actor is dead (health reached 0, so death process started).
|
-- Check if the given actor is dead (health reached 0, so death process started).
|
||||||
-- @function [parent=#Actor] isDead
|
-- @function [parent=#Actor] isDead
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue