Add missing card module to git
This commit is contained in:
parent
0f2f085efe
commit
ab4ab2926b
130
src/cards.rs
Normal file
130
src/cards.rs
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
use serde::{Serialize, Serializer};
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
|
pub fn copper() -> Card {
|
||||||
|
Card {
|
||||||
|
name: "Copper".into(),
|
||||||
|
cost: 0,
|
||||||
|
types: vec![CardType::Treasure(1)],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn silver() -> Card {
|
||||||
|
Card {
|
||||||
|
name: "Silver".into(),
|
||||||
|
cost: 3,
|
||||||
|
types: vec![CardType::Treasure(2)],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn gold() -> Card {
|
||||||
|
Card {
|
||||||
|
name: "Gold".into(),
|
||||||
|
cost: 6,
|
||||||
|
types: vec![CardType::Treasure(3)],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn estate() -> Card {
|
||||||
|
Card {
|
||||||
|
name: "Estate".into(),
|
||||||
|
cost: 2,
|
||||||
|
types: vec![CardType::Victory(1)],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn duchy() -> Card {
|
||||||
|
Card {
|
||||||
|
name: "Duchy".into(),
|
||||||
|
cost: 5,
|
||||||
|
types: vec![CardType::Victory(3)],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn province() -> Card {
|
||||||
|
Card {
|
||||||
|
name: "Province".into(),
|
||||||
|
cost: 8,
|
||||||
|
types: vec![CardType::Victory(6)],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn curse() -> Card {
|
||||||
|
Card {
|
||||||
|
name: "Curse".into(),
|
||||||
|
cost: 0,
|
||||||
|
types: vec![CardType::Curse],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub enum CardType {
|
||||||
|
Action(fn()),
|
||||||
|
Curse,
|
||||||
|
Treasure(u32),
|
||||||
|
Victory(u32),
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct Card {
|
||||||
|
pub name: String,
|
||||||
|
pub cost: u32,
|
||||||
|
pub types: Vec<CardType>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Card {
|
||||||
|
pub fn action(&self) -> Option<()> {
|
||||||
|
for t in &self.types {
|
||||||
|
match t {
|
||||||
|
CardType::Action(_) => return Some(()),
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn curse(&self) -> Option<()> {
|
||||||
|
for t in &self.types {
|
||||||
|
match t {
|
||||||
|
CardType::Action(_) => return Some(()),
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn treasure(&self) -> Option<u32> {
|
||||||
|
for t in &self.types {
|
||||||
|
match t {
|
||||||
|
CardType::Treasure(coin) => return Some(*coin),
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn victory(&self) -> Option<u32> {
|
||||||
|
for t in &self.types {
|
||||||
|
match t {
|
||||||
|
CardType::Victory(points) => return Some(*points),
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Serialize for Card {
|
||||||
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||||
|
where
|
||||||
|
S: Serializer,
|
||||||
|
{
|
||||||
|
serializer.serialize_str(&self.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for Card {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
write!(f, "{}", self.name)
|
||||||
|
}
|
||||||
|
}
|
BIN
static/images/cards/duchy.jpg
(Stored with Git LFS)
Normal file
BIN
static/images/cards/duchy.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
21
static/join.html
Normal file
21
static/join.html
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>DnD</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
<div>
|
||||||
|
<form id="login_form" method="post">
|
||||||
|
Your name: <input type="text" name="name"> <br />
|
||||||
|
<input type="hidden" name="type" value="JoinGame">
|
||||||
|
<input type="submit" value="Join game">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user