/
Arkham Horror Virtualization Project Arkham Horror Virtualization Project

Arkham Horror Virtualization Project - PowerPoint Presentation

alexa-scheidler
alexa-scheidler . @alexa-scheidler
Follow
427 views
Uploaded On 2016-02-25

Arkham Horror Virtualization Project - PPT Presentation

Developed by Kaleb Houck Zack Kimball Douglas Drobny Aaron Phillips Miguel Ramirez Ben Adler Premsagar Donga Ryan Savage Gary Hollingshead Wenlong Huang Brief Introduction Virtualization effort of Arkham Horror Board Game ID: 230896

spec player boardimage set player spec set boardimage table deck class list local card boardpanel maxx item clicks buffs character buff object

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Arkham Horror Virtualization Project" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Arkham Horror Virtualization Project

Developed by Kaleb Houck, Zack Kimball, Douglas Drobny, Aaron Phillips, Miguel Ramirez, Ben Adler, Premsagar Donga, Ryan Savage, Gary Hollingshead, Wenlong HuangSlide2

Brief Introduction

Virtualization effort of Arkham Horror Board GameWill be developed for two platforms: Linux and Table SystemOur team will be doing development using Agile methods.Our project will be developed in a highly modular fashion using Unicon. We will be using a virtual development environment called Assembla.We will be discussing in this presentation what has been done by the three sub teams : Team Gary, Team Doug, and Team Ben.Slide3

Combat (Collaboration)Slide4

Combat (Activity)Slide5

Sealing a Gate (Sequence)Slide6

Dice DemonstrationSlide7
Slide8

Mythos

Common Item

Arkham

Event

Decks

Card

Many to many relationshipSlide9

#############################

# This is a record of a card. Opt-int to use records instead# of classes. The fields of a record are accessed the same way# (with a '.') and can be procedures. # name = Card name# text = Card text# deck = Deck the card belongs to# frontPic = Picture to put on front of card# backPic = Picture to put on the back of the card# total = Number of cards left in deck to draw or total cards to put in deck

#

cUse

= link to procedure that gets called when used

#

cDrop

= link to procedure that gets called when dropped

#

cPickup

= link to procedure that gets called when picked up

#

handCost

= how many hands needed to use

# exhausted = yes or no for exhausted or not

##############################

record Card(name, text, deck,

frontPic

,

backPic, total,

cUse, cDrop, cPickup,

handCost, exhausted)local lMythosDeck

local lArkhamEventDecklocal lOtherworldEventDeck

local lNormalItemDecklocal lMagicItemDeck

local lSpellDecklocal lSkillDecklocal

lHenchmenDeckSlide10

START MENUSlide11

Movement Activity GraphSlide12

Location Pathing

Locations have a list of all adjacent locationsCalculates all paths of length 9Removes paths without destinationTruncates locations after the destinationFinds shortest listSlide13

SamplesSlide14

Environment and Player Character Classes

Stat TablesHouses many relevant player stats within an easily accessed tableTwo Tables: BaseStatsTable and BuffStatsTableBuff SystemAllows for handling of multiple independent stat bonus effects with limited durations.The Buff Object consists of:Name: Expiration: Names of the period in which this buff is to expireCommon expirations are:Combat: These buffs are discarded after each combat turn

Turn: These buffs expire at the end of the player’s current turn

Phase: These buffs expire at the end of the current phase.

Upkeep: These buffs expire at the start of next Upkeep Phase

Passive: These buffs expire when the item giving the benefit is discarded (handled by discard() method)

Effects(list): the list of 1 or more stat modifications for this given buff

It is a list of pairs [ “stat”, magnitude ] , where the “stat” is the key for the proper stat in the

StatTables

and the magnitude is the (+/-) integer.

Conditions(list): used to allow for the buffs that have conditions attached.

Example: [“type”, “cultist”] implies the buff only affects cultist type creatures

Example: [“

locationtype”,”street

”] implies this buff only works when you are tested and found to be in a streetSlide15

Player Character Class

Stat SlidersImplemented in two parts: BaseStatsTable and three integer variables:Mobilityslider: controls the slider of Speed SneakCombatslider: controls the slider of Fight WillMentalslider : controls the slider of Lore

Luck

Each of these integers is contained within the range of 0 to 3

When the character is initialized, their stats in the

BaseStatsTable

is set to the value on the far left, and the sliders are all set to a value of 0

StatusTable

There are many toggles that can be placed on your character, these have all been migrated to the

StatusTable

, under their appropriate keys.Slide16

Environment Class

Player TableContains specific instances of the player character classThe keys for these are player1 through player’n’ in order to prevent odd player names from interfering with the table’s functionDeck TableContains specific instances of the deck class, accessed by giving a ‘key’ that uniquely identifies the deckDrawing a common item is as easy as DeckTable[“common”].DrawCard()This table has the potential to hold every deck, from items to encounter cards, to the gate and monster decks.Slide17

Key

Value“Player1”<class> object“Player2”<class> object….

….

“Player n”

<class

> object

….

…..

variable

Value

Name

“Bobby”

….

….

BaseStatsTable

<table>

object

….

….

BuffList

<list> object

BuffStatsTable

<table> object

Etc..

Etc…

Player-Character class

Player Table

Key

Value

MaxStamina

6

MaxSanity

4

Speed

2

Sneak

0

Etc..

Etc..

BaseStatsTable

Environment Class

Variable

Value

PlayerTable

<table> object

DeckTable

<table>object

….

….

CurrentPlayer

<string>CurrentPhase<string>

PlayerTable

[“Player1”].

GetStat

(“

MaxStamina

”)Slide18
Slide19

Collaboration diagramSlide20

Sequence diagramSlide21

method

OnZoom(ev) w:=BoardImage.w_spec h:=BoardImage.h_spec x:=&x-BoardPanel.x_spec y:=&y-BoardPanel.y_spec if (

BoardImage.w

=

BoardPanel.w_spec

) then {

BoardImage.set_size

(w*5, h*5)

x:=x*5-BoardPanel.w_spec/2

y:=y*5-Boardpanel.h_spec/2

MAXx:=BoardImage.w_spec-BoardPanel.w_spec

MAXy

:=

BoardImage.h_spec-BoardPanel.h_spec

if (x<0) then x:=0

if (y<0) then y:=0

if (x>MAXx) then x:=MAXx

if(y>

MAXy) then y:=

MAXy BoardImage.set_pos(-x, -y)

VerticalZoomScrollBar.set_value(50*y/MAXy

) HorizontalZoomScrollBar.set_value(50*x/MAXx) overlay_set_1.set_which_one(overlay_item_1)

} else { BoardImage.set_size(w/5, h/5)

BoardIMage.set_pos(0,0) overlay_set_1.set_which_one(overlay_item_2) }

resize()

endSlide22

method OnHorizontalZoomScrollBarPress(

ev) y:=BoardImage.y_spec MAXx:=BoardImage.w_spec-BoardPanel.w_spec x:=HorizontalZoomScrollBar.value*MAXx/50 BoardImage.set_pos(-x, y) resize()endSlide23

Zoomed out Map Game Display

Equipment Stats Display

Investigator Stats Display

Main Game Display

Player clicks on map

Player clicks the zoom icon

Player clicks the investigator

Player clicks return

Player clicks an item in the list

Player clicks the investigatorSlide24

Chatbox

Chatbox is an optional feature wherein the users can chat with each other during playtime.Slide25

ChatboxSlide26

ChatboxSlide27

Chatbox