npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@civ-clone/core-diplomacy

v0.1.3

Published

Contains base entities for basic diplomacy.

Downloads

6

Readme

core-diplomacy

Contains base entities for basic diplomacy.

  • Interaction for anything that happens involving Players.
  • Declaration for tracking persistent state between Players.
  • Expiry for terminating Declarations based on the current Turn.
  • Proposal for handling a decision within a Negotiation.
  • Resolution for resolving Proposals.
  • Negotiation for tracking chains of Proposals.

Rules to help manage some of the above entities

For Interactions

  • Created - fired on creation
  • Sentiment - allows a point system to be implemented for building a relationship score of Players based on their Interactions

For Negotiations

  • Interaction - fired at each completed step of a Negotiation
  • Step - controls which Interactions are available at any given point in a Negotiation.
  • Terminated - when the Negotiation is complete

For Proposals

  • Accepted/Declined/Resolved - fired when Proposals are affected

All interactions (anything that inherits from Interaction) can be stored in the InteractionRegistry to enable sentiment analysis.

Future ideas

I'm sure some of these approaches might not work out further down the line, the implementation of using the chooseFromList mechanism in the Client in particular might need altering, which might encourage further changes to the flow here, but this is "good enough" for now.

Other ideas:

  • Voters. Maybe this is just an interface and any object can be a Voter, Proposals could then be voted on by any entity that implements the interface and the concept could work for any type of diplomacy like UN, internal City elections, etc
  • Full support for more than two participants.
  • ResolutionStrategys for requirements like Unanimous and Majority to allow Proposals to be actioned.
  • Dialogue probably shouldn't be a Proposal...