bfso / laravel-filament_bfo_centurion

0 stars 1 forks source link

Implement Companions #12

Open moleculech opened 1 year ago

moleculech commented 1 year ago

Companions are NPCs working for money. Players can hire them and assign tasks to them. Companions can work on fields, find items, work in mines and transport goods. A companion can be scripted, that means he can be programmed to do things in a certain order based on conditions.

moleculech commented 1 year ago

Proposed script format


{
  "Comment": "A example script for mining salt",
  "Compainion": "*%32585",
  "StartAt": "Before",
  "States": {
    "Before": {
      "Type": "Once",
      "Do": "goto 5,6",
      "Result": "I went to the mine!",
      "Next": "Mine"
    },
    "Mine": {
      "Type": "While",
      "Do": "mine salt",
      "Result": "I mined salt!",
      "Condition": "not-enough-inventory-space"
      "Next": "After"
    },
    "After": {
      "Type": "Once",
      "Do": "goto 8x&fsd",
      "Result": "I went to the stash!",
      "Next": "Finally"
    },
    "Finally": {
      "Type": "Once",
      "Do": "store all salt",
      "Result": "I stored the salt!",
      "End": true
    }
  }
}
`
moleculech commented 1 year ago

{
  "Comment": "A example script for grinding items",
  "Compainion": "*%32585",
  "StartAt": "Grind",
  "States": {
    "Grind": {
      "Type": "While",
      "Do": "search apple",
      "Result": "I searched apples!",
      "Condition": "not-enough-inventory-space"
      "Next": "After"
    },
    "After": {
      "Type": "Once",
      "Do": "goto 8x&fsd",
      "Result": "I went to the stash!",
      "Next": "Finally"
    },
    "Finally": {
      "Type": "Once",
      "Do": "store all",
      "Result": "I stored all items!",
      "End": true
    }
  }
}