From ceedb39dd0e8f63151aec8029adf4e968640d6b1 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sat, 21 Sep 2024 20:55:45 +0300
Subject: [PATCH 58/58] Lua: Add Player:add_love()

See RM #904

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 server/scripting/api_server_game_methods.c | 14 ++++++++++++++
 server/scripting/api_server_game_methods.h |  1 +
 server/scripting/tolua_server.pkg          |  2 ++
 3 files changed, 17 insertions(+)

diff --git a/server/scripting/api_server_game_methods.c b/server/scripting/api_server_game_methods.c
index 4d637d177e..914e8f42a5 100644
--- a/server/scripting/api_server_game_methods.c
+++ b/server/scripting/api_server_game_methods.c
@@ -246,3 +246,17 @@ int api_methods_love(lua_State *L, Player *pplayer, Player *towards)
 
   return pplayer->ai_common.love[player_number(towards)];
 }
+
+/**********************************************************************//**
+  Add player love towards another.
+**************************************************************************/
+void api_methods_add_love(lua_State *L, Player *pplayer, Player *towards,
+                          int amount)
+{
+  LUASCRIPT_CHECK_STATE(L);
+  LUASCRIPT_CHECK_SELF(L, pplayer);
+  LUASCRIPT_CHECK_ARG_NIL(L, towards, 3, Player);
+
+  pplayer->ai_common.love[player_number(towards)]
+    += amount * MAX_AI_LOVE / 1000;
+}
diff --git a/server/scripting/api_server_game_methods.h b/server/scripting/api_server_game_methods.h
index 144d9f3c76..6cb001fccb 100644
--- a/server/scripting/api_server_game_methods.h
+++ b/server/scripting/api_server_game_methods.h
@@ -43,5 +43,6 @@ int api_methods_player_free_bulbs(lua_State *L, Player *pplayer);
 int api_methods_tag_score(lua_State *L, Player *pplayer, const char *tag);
 
 int api_methods_love(lua_State *L, Player *pplayer, Player *towards);
+void api_methods_add_love(lua_State *L, Player *pplayer, Player *towards, int amount);
 
 #endif /* FC__API_SERVER_GAME_METHODS_H */
diff --git a/server/scripting/tolua_server.pkg b/server/scripting/tolua_server.pkg
index 13f59c2d23..25e404a516 100644
--- a/server/scripting/tolua_server.pkg
+++ b/server/scripting/tolua_server.pkg
@@ -572,6 +572,8 @@ module Player {
 
   int api_methods_love
     @ love (lua_State *L, Player *pplayer, Player *towards);
+  void api_methods_add_love
+    @ add_love (lua_State *L, Player *pplayer, Player *towards, int amount);
 }
 
 $[
-- 
2.45.2

