project/Environment: Difference between revisions

From OpenKore Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 3: Line 3:
Environment is a wall between real network stuff and everything other (AI, user, AI-level and user-level plugins).
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, Field; and network-dependent implementations.
Environment should have common not-RO binded concepts with common interfaces, such as:
* Actor
* ActorList (with additional properties)
* Field
and network-dependent implementations.


== Overview of current situation ==
== 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"?)


<table border="1" cellspacing="0" cellpadding="2">
 
<tr>
 
<th>Pattern</th>
Random actions on unavailable objects (invite for party)?
<th>Actor::You</th>
 
<th>Actor::Slave</th>
Replies to misc requests (party, deal, friends)?
<th>Actor::Player</th>
<th>Actor::Item</th>
<th>Skill</th>
</tr>
<tr>
<th>Controllable->move</th>
<td>sendMove</td>
<td>sendHomunculusMove</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th>Actor->use ActorList->merge</th>
<td></td>
<td></td>
<td></td>
<td>sendArrowCraft sendCardMergeRequest sendCardMerge sendProduceMix sendIdentify sendItemUse sendPetHatch sendCooking sendWeaponRefine</td>
<td>sendAutoSpell sendSkillUse</td>
</tr>
<tr>
<th>Controllable->attack</th>
<td>sendAction</td>
<td>sendHomunculusAttack</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th>Controllable->action</th>
<td>sendAction sendChat sendEmotion</td>
<td>sendHomunculusCommand sendHomunculusStandBy [sendPetMenu] sendMercenaryCommand</td>
<td></td>
<td>sendEquip</td>
<td>sendAddSkillPoint</td>
</tr>
<tr>
<th>Actor->moveToList ActorList->moveToList</th>
<td></td>
<td></td>
<td>sendFriendRequest sendGuildJoinRequest sendPartyJoinRequest</td>
<td>sendBuyBulk sendBuyBulkVender sendCartAdd/Get sendSell sendStorageAdd/FromCart/Get/ToCart sendDrop sendTake</td>
<td></td>
</tr>
<tr>
<th>Actor->delete ActorList->remove</th>
<td></td>
<td>sendHomunculusCommand sendMercenaryCommand</td>
<td>sendFriendRemove sendGuildLeave sendGuildMemberKick sendGuildBreak sendPartyKick</td>
<td></td>
<td></td>
</tr>
<tr>
<th>ActorList->delete</th>
<td></td>
<td></td>
<td></td>
<td>sendCompanionRelease sendStorageClose</td>
<td></td>
</tr>
</table>

Revision as of 04:12, 21 June 2010

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)?