Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.44 KB | None | 0 0
  1. #!/usr/local/racket/bin/racket
  2. #lang racket
  3.  
  4. (require racket/class)
  5.  
  6. (define tribe%
  7.   (class object%
  8.     ; Object initialization
  9.     (init name)
  10.     (define tribe-name name)
  11.     ; Initialize superclass
  12.     (super-new)
  13.  
  14.     ; Traits list
  15.     (define traits-all (list
  16.                         ; Food-gathering traits, tied to terrain
  17.                         'Fishermen  ; Good on coastal starts, river
  18.                                     ; starts, lake starts. Can be
  19.                                     ; overdone.
  20.                         'Hunting    ; Killing local wildlife and
  21.                                     ; feeding tribe. Can be overdone.
  22.                         'Scavenging ; Steal kills from local
  23.                                     ; predators. Dangerous at low skill.
  24.                         'Gathering  ; Berries, fruits, etc. Women's
  25.                                     ; work.
  26.                         ))
  27.     (define traits empty)
  28.    
  29.     ; Get/set methods for name
  30.     (define/public (name-get)
  31.       tribe-name)
  32.     (define/public (name-set name)
  33.       (set! tribe-name name))
  34.  
  35.     ; Trait management
  36.     ; TODO Make this stuff safe
  37.     (define/public (trait-add trait)
  38.       (set! traits
  39.             (append traits
  40.                     (list trait))))
  41.     (define/public (trait-remove trait)
  42.       (set! traits
  43.             (remove trait traits)))
  44.     (define/public (trait-list)
  45.       traits)))
  46.  
  47. (provide tribe%)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement