project/Environment

From OpenKore Wiki
Revision as of 22:35, 26 April 2021 by Conversion script (talk | contribs) (Conversion script moved page Project/Environment to project/Environment: Converting page titles to lowercase)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Regarding OpenKore 2.x.

Environment is a wall between real network stuff and everything other (AI, user, AI-level and user-level plugins).

Environment should have common not-RO binded concepts with common interfaces, such as:

  • Actor
  • ActorList (with additional properties)
  • Field

and network-dependent implementations.

Possible RO Environment classes

  • Actor
    • You actions: sendAction send(Guild/Battleground)Chat sendDeal/OpenShop/PartyOrganize sendEmotion/Look/Memo/Move
    • Player
    • Monster
    • Familiar (Mercenary, Homunculus, Pet) actions: sendHomunculusCommand/MercenaryCommand/Move/Attack/StandBy/Name sendPetMenu/Name
    • NPC
    • Item actions: sendArrowCraft sendCardMerge(Request) sendItemUse send(Un)Equip/ProduceMix/Identify/RepairItem/Cooking/WeaponRefine
  • ActorList
    • Mixed
      • (stuff around the character) moves: sendTake
    • Actor::Item based
      • Inventory moves: sendCartAdd sendDealAddItem sendDrop sendSell(Bulk) sendStorageAdd
      • Cart actions: sendCompanionRelease sendChangeCart; moves: sendCardGet sendStorageAddFromCart
      • Storage actions: sendStorageClose; moves: sendStorageGet(ToCart)
      • Store (basic NPC, cash, venders and our own) actions: sendCloseShop; moves: sendBuyBulk(Vender) sendCashShopBuy
    • Actor::Player based
      • Friends moves: sendFriendRemove
      • Party sendPartyKick/Leave/ShareEXP/Option
      • Guild actions: sendGuildMemberPositions/Notice/PositionInfo; moves: sendGuildBreak/JoinRequest/Leave/MemberKick
      • Chatroom actions: sendChatRoomBestow/Change; moves: /Join/Kick/Leave
  • Skill actions: sendSkillUse(Loc) sendAddSkillPoint sendAutoSpell
  • SkillList
  • Deal (complex object) sendCurrentDealCancel sendDealFinalize/OK/Trade
  • Spell (subclass of some "FieldEvent" or "FieldEffect"?)


Random actions on unavailable objects (invite for party)?

Replies to misc requests (party, deal, friends)?