Difference between revisions of "project/Environment"

From OpenKore Wiki
Jump to navigation Jump to search
m
m
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)?